Android

Comanda Ssh

SSH с публичным ключом из Windows Putty к Ubuntu Server 16.04.3 LTS

SSH с публичным ключом из Windows Putty к Ubuntu Server 16.04.3 LTS

Cuprins:

Anonim

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ță.

terminalul ssh