SSH с публичным ключом из Windows Putty к Ubuntu Server 16.04.3 LTS
Cuprins:
- Instalarea clientului OpenSSH
- Instalarea clientului OpenSSH pe Linux
- Instalarea OpenSSH pe Ubuntu și Debian
- Instalarea OpenSSH pe CentOS și Fedora
- Instalarea clientului OpenSSH pe Windows 10
- Instalarea clientului OpenSSH pe macOS
- Cum se utilizează comanda
ssh - SSH File Config
- Port forwarding
- Expediere port local
- Redirecționarea portului de la distanță
- Transmiterea porturilor dinamice
- Concluzie
Secure Shell (SSH) este un protocol de rețea criptografică utilizat pentru o conexiune criptată între un client și un server. Clientul ssh creează o conexiune sigură la serverul SSH pe o mașină de la distanță. Conexiunea criptată poate fi utilizată pentru a executa comenzi pe server, tunelare X11, redirecționare port și multe altele.
Există o serie de clienți SSH disponibili atât gratuit, cât și comercial, OpenSSH fiind cel mai utilizat client. Este disponibil pe toate platformele majore, inclusiv Linux, OpenBSD, Windows, macOS și altele.
, vom explica cum se utilizează clientul liniei de comandă OpenSSH (
ssh
) pentru a vă conecta la o mașină de la distanță și a rula comenzi sau a efectua alte operațiuni.
Instalarea clientului OpenSSH
Programul client OpenSSH se numește
ssh
și poate fi invocat de la terminal. Pachetul client OpenSSH oferă și alte utilități SSH, cum ar fi
scp
și
sftp
care sunt instalate alături de comanda
ssh
.
Instalarea clientului OpenSSH pe Linux
Clientul OpenSSH este preinstalat în majoritatea distribuțiilor Linux în mod implicit. Dacă sistemul dvs. nu are clientul ssh instalat, îl puteți instala folosind managerul de pachete al distribuției dvs.
Instalarea OpenSSH pe Ubuntu și Debian
sudo apt update
sudo apt install openssh-client
Instalarea OpenSSH pe CentOS și Fedora
sudo dnf install openssh-clients
Instalarea clientului OpenSSH pe Windows 10
Majoritatea utilizatorilor Windows folosesc Putty pentru a se conecta la o mașină de la distanță prin SSH. Cu toate acestea, cele mai recente versiuni ale Windows 10 includ un client și un server OpenSSH. Ambele pachete pot fi instalate prin GUI sau PowerShell.
Pentru a găsi numele exact al pachetului OpenSSH, tastați următoarea comandă:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Comanda ar trebui să returneze ceva de genul:
Name: OpenSSH.Client~~~~0.0.1.0 State: NotPresent Name: OpenSSH.Server~~~~0.0.1.0 State: NotPresent
După ce știți numele pachetului instalați-l rulând:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
La succes, rezultatul va arăta astfel:
Path: Online: True RestartNeeded: False
Instalarea clientului OpenSSH pe macOS
macOS se livrează cu clientul OpenSSH instalat implicit.
Cum se utilizează comanda
ssh
Trebuie îndeplinite următoarele cerințe pentru a vă putea conecta la o mașină de la distanță prin SSH:
- Un server SSH trebuie să funcționeze pe mașina de la distanță. Portul SSH trebuie să fie deschis în firewallul mașinii de la distanță. Trebuie să știți numele de utilizator și parola contului de la distanță. Contul trebuie să aibă privilegii adecvate pentru autentificarea de la distanță.
Sintaxa de bază a comenzii
ssh
este următoarea:
ssh:HOST
Pentru a utiliza comanda
ssh
deschideți Terminalul sau PowerShell și tastați
ssh
urmată de numele gazdă de la distanță:
ssh ssh.linuxize.com
Când vă conectați la o mașină de la distanță prin SSH pentru prima dată, veți vedea un mesaj ca mai jos.
The authenticity of host 'ssh.linuxize.com (192.168.121.111)' can't be established. ECDSA key fingerprint is SHA256:Vybt22mVXuNuB5unE++yowF7lgA/9/2bLSiO3qmYWBY. Are you sure you want to continue connecting (yes/no)?
Fiecare gazdă are o amprentă unică care este stocată în fișierul
~/.ssh/known_hosts
.
Tastați
yes
pentru a stoca amprenta la distanță și vi se va solicita să introduceți parola.
Warning: Permanently added 'ssh.linuxize.com' (ECDSA) to the list of known hosts. [email protected]'s password:
După ce introduceți parola, veți fi conectat la mașina de la distanță.
Când numele de utilizator nu este dat, comanda
ssh
folosește numele de autentificare curent al sistemului.
Pentru a vă autentifica ca un utilizator diferit, specificați numele de utilizator și gazda în următorul format:
ssh username@hostname
Numele de utilizator poate fi specificat și cu opțiunea
-l
:
ssh -l username hostname
În mod implicit, atunci când nu este dat niciun port, clientul SSH va încerca să se conecteze la serverul de la distanță în portul 22. Pe unele servere, administratorii modifică portul SSH implicit pentru a adăuga un strat suplimentar de securitate serverului prin reducerea riscului de atacuri automatizate.
Pentru a vă conecta la un port implicit, utilizați opțiunea
-p
pentru a specifica portul:
ssh -p 5522 username@hostname
ssh -v username@hostname
Pentru a crește nivelul de verbositate, utilizați
-vv
sau
-vvv
.
Comanda
ssh
acceptă o serie de opțiuni.
Pentru o listă completă a tuturor opțiunilor, citiți pagina
ssh
manual, tastând
man ssh
în terminalul dvs.
SSH File Config
Clientul OpenSSH citește opțiunile setate în fișierul de configurare per utilizator (
~/.ssh/config
). În acest fișier, puteți stoca diferite opțiuni SSH pentru fiecare mașină la distanță la care vă conectați.
Un exemplu de configurare SSH este prezentat mai jos:
Host dev HostName dev.linuxize.com User mike Port 4422
Când invocați clientul ssh tastând
ssh dev
, comanda va citi fișierul
~/.ssh/config
și va folosi detaliile de conexiune specificate pentru gazda dev. În acest exemplu,
ssh dev
este echivalent cu următoarele:
ssh -p 4422 [email protected]
Pentru mai multe informații, verificați articolul din fișierul de configurare SSH.
Autentificare cu cheie publică
Protocolul SSH acceptă diferite mecanisme de autentificare.
Mecanismul de autentificare bazat pe cheie publică vă permite să vă conectați la serverul de la distanță fără a fi necesar să introduceți parola.
Această metodă funcționează prin generarea unei perechi de chei criptografice care sunt utilizate pentru autentificare. Cheia privată este stocată pe dispozitivul client, iar cheia publică este transferată fiecărui server la distanță pe care doriți să vă conectați. Serverul la distanță trebuie configurat pentru a accepta autentificarea cheii.
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Vi se va cere să introduceți o parolă sigură. Indiferent dacă doriți să folosiți fraza de acces, depinde de dvs.
După ce aveți perechea de chei, copiați cheia publică pe serverul de la distanță:
ssh-copy-id username@hostname
Introduceți parola utilizatorului de la distanță, iar cheia publică va fi anexată la fișierul
authorized_keys
la distanță.
Odată ce cheia este încărcată, vă puteți autentifica pe serverul de la distanță fără să vi se solicite o parolă.
Setând o autentificare bazată pe cheie, puteți simplifica procesul de conectare și crește securitatea generală a serverului.
Port forwarding
Tunelarea SSH sau redirecționarea porturilor SSH este o metodă de creare a unei conexiuni SSH criptate între un client și o mașină server prin care pot fi transmise porturile de servicii.
Redirecționarea SSH este utilă pentru transportul datelor de rețea a serviciilor care utilizează un protocol necriptat, cum ar fi VNC sau FTP, accesarea conținutului geo-restricționat sau ocolirea firewall-urilor intermediare. Practic, puteți trimite orice port TCP și tunel traficul printr-o conexiune securizată SSH.
Există trei tipuri de expediere port SSH:
Expediere port local
Redirecționarea portului local vă permite să redirecționați o conexiune de la gazda client la gazda serverului SSH și apoi la portul gazdă de destinație.
Pentru a crea o redirecționare a unui port local treceți opțiunea
-L
către clientul
ssh
:
ssh -L LOCAL_PORT:DESTINATION_HOST:DESTINATION_PORT -N -f username@hostname
Opțiunea -f spune ca comanda
ssh
să ruleze în fundal și
-N
să nu execute o comandă de la distanță.
Redirecționarea portului de la distanță
Redirecționarea de la distanță a porturilor este opusă redirecționării portului local. Transmite un port de la serverul gazdă la gazda client și apoi la portul gazdă de destinație.
Opțiunea
-L
spune
ssh
să creeze o redirecționare de porturi la distanță:
ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT -N -f username@hostname
Transmiterea porturilor dinamice
Redirecționarea dinamică a porturilor creează un server proxy SOCKS care permite comunicarea într-o gamă de porturi.
Pentru a crea o redirecționare dinamică a porturilor (SOCKS) treceți opțiunea
-D
către clientul ssh:
ssh -D LOCAL_PORT -N -f username@hostname
Pentru informații mai detaliate și instrucțiuni pas cu pas, verificați articolul despre Cum se configurează tunelul SSH (redirecționarea porturilor).
Concluzie
Pentru a vă conecta la un server la distanță prin SSH, utilizați comanda
ssh
urmată de numele de utilizator și de la gazdă la distanță (
ssh username@hostname
).
Să știi cum să folosești comanda
ssh
este esențial pentru gestionarea serverului la distanță.
Centrul de comandă Red Hat
Serviciul de monitorizare a sistemelor și aplicațiilor Linux este acum online, cu o versiune gratuită de încercare. versiunea Centrului de Comandă, serviciul integrat de monitorizare a serverului și a aplicațiilor. De asemenea, aceasta aduce noi caracteristici și o versiune gratuită de evaluare.
Creați o comandă rapidă de închidere
James Strong dorește o comandă rapidă pe desktop-ul său, care va opri calculatorul. Îi spun cum să faci unul.
Utilizați linia de comandă cu comandă
Integrați linia de comandă, interfața grafică și o limbă puternică cu pachetul de instrumente Take Command. > Nu-ți place când vânezi un program pe care trebuie să-l faci, să-l găsești, și apoi să descoperi că face mai mult? Am găsit Command Command (100 $, încercare gratuită de 30 de zile) după ce am fost frustrat de linia de comandă necorespunzătoare din Windows. Am descoperit că mi-a dat ce vroiam și multe lucruri pe care nu știam că le-am vrut - dar acum cu siguranță o fac.







