OpenSSH Server

Introducere

OpenSSH este o colecție puternică de instrumente pentru controlul de la distanță și transferul de date între computerele din rețea. Veți afla, de asemenea, despre unele dintre setările de configurare posibile cu aplicația server OpenSSH și cum să le modificați pe sistemul dvs.

OpenSSH este o versiune disponibilă gratuit a familiei de protocoale Secure Shell (SSH) de instrumente pentru controlul de la distanță sau transferul fișierelor între computere. Instrumentele tradiționale utilizate pentru îndeplinirea acestor funcții, cum ar fi telnet sau rcp, sunt nesigure și transmit parola utilizatorului în text clar atunci când sunt utilizate. OpenSSH oferă un daemon de server și instrumente client pentru a facilita operațiunile de control de la distanță și de transfer de fișiere sigure, criptate, înlocuind în mod eficient instrumentele vechi.

componenta Server OpenSSH, sshd, ascultă continuu conexiunile client de la oricare dintre instrumentele client. Când apare o solicitare de conectare, sshd configurează conexiunea corectă în funcție de tipul de conectare a instrumentului client. De exemplu, dacă computerul la distanță se conectează cu aplicația client ssh, serverul OpenSSH configurează o sesiune de control la distanță după autentificare. Dacă un utilizator la distanță se conectează la un server OpenSSH cu scp, demonul OpenSSH server inițiază o copie sigură a fișierelor între server și client după autentificare. OpenSSH poate utiliza multe metode de autentificare, inclusiv parola simplă, cheia publică și biletele Kerberos.

instalare

instalarea aplicațiilor client și server OpenSSH este simplă. Ubuntu, utilizați această comandă la un prompt terminal:

sudo apt install openssh-client

pentru a instala aplicația server OpenSSH și fișierele de asistență conexe, utilizați această comandă la un prompt terminal:

sudo apt install openssh-server

configurare

Puteți configura comportamentul implicit al aplicației Server OpenSSH, SSHD, prin editarea fișierului /etc/ssh/sshd_config. Pentru informații despre directivele de configurare utilizate în acest fișier, puteți vizualiza pagina manuală corespunzătoare cu următoarea comandă, emisă la un prompt terminal:

man sshd_config

există multe directive în fișierul de configurare sshd care controlează lucruri precum setările de comunicare și modurile de autentificare. Următoarele sunt exemple de directive de configurare care pot fi modificate prin editarea fișierului /etc/ssh/sshd_config.

sfat

înainte de editarea fișierului de configurare, ar trebui să faceți o copie a fișierului original și să îl protejați de scriere, astfel încât să aveți setările originale ca referință și să le reutilizați după cum este necesar.

copiați fișierul /etc/ssh/sshd_config și protejați-l de scriere cu următoarele comenzi, emise la un prompt terminal:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.originalsudo chmod a-w /etc/ssh/sshd_config.original

În plus, deoarece pierderea unui server ssh ar putea însemna pierderea drumului dvs. de a ajunge la un server, verificați configurația repornirea serverului:

sudo sshd -t -f /etc/ssh/sshd_config

următoarele sunt exemple de directive de configurare pe care le puteți modifica:

  • pentru a seta OpenSSH să asculte pe portul TCP 2222 în loc de portul TCP implicit 22, modificați Directiva portului ca atare:

portul 2222

  • Pentru ca serverul OpenSSH să afișeze conținutul fișierului /etc/issue.net ca banner pre-conectare, pur și simplu adăugați sau modificați această linie în /etc/ssh/sshd_config fișier:

banner/etc / problemă.net

după efectuarea modificărilor la fișierul /etc/ssh/sshd_config, salvați fișierul și reporniți aplicația SSHD server pentru a efectua modificările folosind următoarea comandă la un prompt terminal:

sudo systemctl restart sshd.service

avertisment

multe alte directive de configurare pentru SSHD sunt disponibile pentru a schimba comportamentul aplicației server pentru a se potrivi nevoilor dvs. Cu toate acestea, dacă singura dvs. metodă de acces la un server este ssh și faceți o greșeală în configurarea sshd prin fișierul /etc/ssh/sshd_config, puteți găsi că sunteți blocat din server la repornirea acestuia. În plus, dacă este furnizată o directivă de configurare incorectă, serverul sshd poate refuza pornirea, deci fiți foarte atenți atunci când editați acest fișier pe un server la distanță.

tastele SSH

SSH permit autentificarea între două gazde fără a fi nevoie de o parolă. Autentificarea cheii SSH utilizează o cheie privată și o cheie publică.

pentru a genera cheile, de la un prompt terminal Introduceți:

ssh-keygen -t rsa

aceasta va genera cheile folosind algoritmul RSA. La momentul acestei scrieri, tastele generate vor avea 3072 biți. Puteți modifica numărul de biți utilizând opțiunea -b. De exemplu, pentru a genera chei cu 4096 biți, puteți face:

ssh-keygen -t rsa -b 4096

în timpul procesului vi se va solicita o parolă. Pur și simplu apăsați Enter când vi se solicită să creați cheia.

implicit cheia publică este salvată în fișierul~/.ssh/id_rsa.pub, în timp ce~/.ssh/id_rsa este cheia privată. Acum copiați fișierul id_rsa.pub la gazda de la distanță și adăugați-l la ~/.ssh/authorized_keys introducând:

ssh-copy-id username@remotehost

în cele din urmă, verificați permisiunile de pe fișierul authorized_keys, numai fișierul utilizatorul autentificat ar trebui să aibă permisiuni de citire și scriere. Dacă permisiunile nu sunt corecte, schimbați-le prin:

chmod 600 .ssh/authorized_keys

ar trebui să fie acum posibilitatea de a SSH la gazdă, fără a fi solicitat pentru o parolă.

chei de Import de la keyservers publice

aceste zile mulți utilizatori au deja chei ssh înregistrate cu servicii cum ar fi launchpad sau github. Acestea pot fi ușor importate cu:

ssh-import-id <username-on-remote-service>

prefixullp: este implicit și înseamnă preluarea de la launchpad, alternativagh: va face ca instrumentul să fie preluat de la github.

autentificare cu doi factori cu U2F/FIDO

OpenSSH 8.2 Adăugat suport pentru U2F / FIDO dispozitive de autentificare hardware. Aceste dispozitive sunt utilizate pentru a oferi un nivel suplimentar de securitate pe partea de sus a autentificării bazate pe chei existente, deoarece tokenul hardware trebuie să fie prezent pentru a termina autentificarea.

este foarte simplu de utilizat și de configurare. Singurul pas suplimentar este generarea unui nou keypair care poate fi utilizat cu dispozitivul hardware. Pentru aceasta, există două tipuri de chei care pot fi utilizate: ecdsa-sk și ed25519-sk. Primul are suport hardware mai larg, în timp ce acesta din urmă ar putea avea nevoie de un dispozitiv mai recent.

odată ce keypair este generat, acesta poate fi folosit așa cum ați folosi în mod normal orice alt tip de cheie în openssh. Singura cerință este că, pentru a utiliza cheia privată, dispozitivul U2F trebuie să fie prezent pe gazdă.

de exemplu, conectați dispozitivul U2F și de a genera un keypair pentru a utiliza cu ea:

$ ssh-keygen -t ecdsa-skGenerating public/private ecdsa-sk key pair.You may need to touch your authenticator to authorize key generation. <-- touch deviceEnter file in which to save the key (/home/ubuntu/.ssh/id_ecdsa_sk): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/ubuntu/.ssh/id_ecdsa_skYour public key has been saved in /home/ubuntu/.ssh/id_ecdsa_sk.pubThe key fingerprint is:SHA256:V9PQ1MqaU8FODXdHqDiH9Mxb8XK3o5aVYDQLVl9IFRo ubuntu@focal

acum doar transfera partea publică la server pentru a~/.ssh/authorized_keys și sunteți gata pentru a merge:

$ ssh -i .ssh/id_ecdsa_sk [email protected] user presence for key ECDSA-SK SHA256:V9PQ1MqaU8FODXdHqDiH9Mxb8XK3o5aVYDQLVl9IFRo <-- touch deviceWelcome to Ubuntu Focal Fossa (GNU/Linux 5.4.0-21-generic x86_64)(...)[email protected]:~$

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *