Cheile SSH publice vă fac greu? Încercați una dintre aceste soluții.

SSH este un instrument util pentru conectarea la mașini la distanță, dar este posibil să întâlniți o eroare „Permisiune refuzată (cheie publică)” care implică cheia dumneavoastră publică pe Linux. Din fericire, există câteva soluții ușoare pe care le puteți încerca să o depanați.

Ce este o cheie publică?

Când generați o pereche de chei pentru SSH pe Linux, vi se va da o cheie publică și o cheie privată. Cheia privată va rămâne cu dvs. ca un secret bine păzit, dar cheia publică este ceea ce va fi transmisă serverelor de la distanță pentru a vă permite să vă conectați fără o parolă. Clientul SSH local va potrivi cheia publică cu cheia privată atunci când vă conectați.

Avantajul acestei metode este că trebuie doar să dați cheia publică. Atâta timp cât vă păstrați cheia privată privată, acest lucru ar trebui să vă mențină în siguranță în cazul în care cheia publică este compromisă. Cheia publică va fi inutilă singură.

OpenSSH, cel mai utilizat client și server SSH din lumea open source, necesită fișierul care conține orice cheile publice de pe mașina de la distanță (.ssh/authorized_keys" în directorul dvs. de acasă), pentru a avea anumite permisiuni. Nu va funcționa dacă permisiunile de scriere sunt setate pentru alți utilizatori, ceea ce este cunoscut ca fiind „inscriptibil în lume”. Deoarece numele directorului începe cu un punct (.), nu va apărea în nicio listă ls decât dacă utilizați comanda

instagram viewer
ls -A.

Permisiunile se pot schimba dacă fișierul a fost copiat de pe alt computer sau dacă l-ați creat singur. Din fericire, acest lucru este ușor de remediat.

Verificați permisiunile cheii publice

Fișierul authorized_keys este pur și simplu un fișier text simplu care conține toate cheile publice de la clienții pe care doriți să vă puteți conecta la contul dvs. pe mașina de la distanță. Pentru a-i vedea permisiunile, utilizați comanda ls cu opțiunea -l:

ls -l ~/.ssh/authorized_keys

Aceasta va afișa setările de permisiuni pentru proprietar, grup și alți utilizatori. Acordați atenție ultimelor șase litere din șir. Dacă vedeți „w” în ele, înseamnă că grupul sau alții îi pot scrie, făcându-l nesigur.

Veți dori ca acest fișier să poată fi scris de dvs., dar nu de grup sau de alții. Pentru a oferi acces utilizatorilor corecti, puteți schimba permisiunile cu chmod.

Există două moduri: numeric și simbolic.

Calea numerică este mai scurtă, dar trebuie să memorați numerele de permisiuni octale:

chmod 700 ~/.ssh/authorized_keys

Metoda simbolică este mai mnemonică:

chmod go-w ~/.ssh/authorized_keys

Copiați în siguranță cheile utilizând ssh-agent

Puteți copia și lipi manual orice cheie publică de pe computer în fișierul ~/.ssh/.authorized_keys fișier, dar utilizarea programului ssh-agent va reduce șansele oricăror erori de permisiuni.

Pentru a porni ssh-agent, utilizați această comandă:

eval "$(ssh-agent-s)"

Pentru a vă conecta la un server la distanță folosind ssh-agent, utilizați opțiunea -A cu ssh

ssh -A [email protected]

Verificați setările sshd ale serverului de la distanță

Dacă oricare dintre aceste eforturi eșuează, poate fi necesar să faceți unele modificări de configurare la serverul sshd de pe mașina de la distanță dacă aveți acces root. Dacă nu, probabil că va trebui să luați legătura cu administratorul de sistem pentru a vă ajuta să rezolvați orice problemă de conexiune SSH. Aceasta este o metodă de ultimă instanță, deoarece vă poate face sistemul mai puțin sigur.

Fișierul de configurare la nivel de sistem pentru sshd este /etc/ssh/sshd_config. Deoarece este deținut de root, va trebui să utilizați sudo pentru a-l edita. De exemplu, pentru a-l edita cu Vim:

sudo vim /etc/ssh/sshd_config

Pentru a permite sshd să vă permită să vă conectați, chiar dacă fișierul authorized_keys poate fi scris în întreaga lume, setați opțiunea „StrictModes” la „nu” în acest fișier.

Salvați-l și reporniți serverul SSH:

sudo systemctl restart sshd.service

Acum puteți remedia erorile de permisiuni ale cheii publice SSH

Este posibil să întâmpinați erori cu privire la cheile publice SSH pe sistemele de la distanță. Din fericire, de cele mai multe ori tot ce trebuie să faceți este să verificați și să setați permisiunile fișierelor, astfel încât nimeni să nu vă poată vedea cheia. De asemenea, puteți utiliza ssh-agent pentru conexiuni mai fiabile. Ca ultimă soluție, puteți face serverul SSH mai puțin strict.