Com configurar l'autenticació SSH sense contrasenya a RHEL 9


Abreviatura de Secure Shell, SSH és un protocol de xarxa segur que xifra el trànsit entre dos punts finals. Permet als usuaris connectar i/o transferir fitxers de manera segura a través d'una xarxa.

SSH és utilitzat principalment pels administradors de xarxes i sistemes per accedir i gestionar de manera segura els actius remots com ara servidors i dispositius de xarxa a través d'una xarxa. Utilitza mètodes de xifratge forts com AES i algorismes de hash com SHA-2 i ECDSA per xifrar el trànsit intercanviat entre un client i un sistema remot.

[ També us pot agradar: Com protegir i endurir el servidor OpenSSH ]

SSH implementa dos mètodes d'autenticació; autenticació basada en contrasenya i autenticació de clau pública. Aquest últim és més preferit ja que ofereix una millor seguretat mitjançant l'autenticació de clau pública que protegeix el sistema dels atacs de força bruta.

Tenint això en compte, demostrarem com podeu configurar l'autenticació basada en clau SSH a RHEL 9.

Aquest és el que sembla la nostra configuració

  • Un sistema Linux/UNIX (basat en Ubuntu o RHEL) en el qual generarem el parell de claus. Per a aquesta guia, estic utilitzant la distribució Ubuntu.
  • Una instància de RHEL 9 (aquest núvol és un VPS local o al núvol).

Pas 1: genereu el parell de claus SSH ECDSA

Accediu al vostre sistema Linux i genereu el parell de claus SSH de la següent manera. En aquesta guia, generarem el parell de claus mitjançant l'algorisme ECDSA que proporciona un millor xifratge i seguretat.

Per tant, per generar el parell de claus ECDSA, executeu l'ordre:

$ ssh-keygen -t ecdsa

L'ordre us guiarà a través d'una sèrie d'indicacions.

Per defecte, el parell de claus es desa al directori inicial de l'usuari dins del directori ~/.ssh. Podeu acceptar-ho com a destinació del parell de tecles SSH prement ENTER al teclat, en cas contrari, podeu especificar el vostre camí preferit. En aquesta guia, hem decidit seguir el camí predeterminat.

A continuació, se us demanarà que proporcioneu una frase de contrasenya. Aquesta és bàsicament una contrasenya que se us demanarà que proporcioneu en establir una connexió amb el sistema RHEL 9 remot. Proporciona una capa addicional de protecció a la part superior del xifratge que ofereixen les claus SSH.

Tanmateix, si el vostre pla és automatitzar processos mitjançant la protecció SSH o configurar l'autenticació sense contrasenya, es recomana deixar-ho en blanc. I per tant, ho deixarem en blanc prement, una vegada més, ENTER.

A continuació es mostra la sortida del temps d'execució de l'ordre.

Podeu fer una ullada al parell de claus SSH mitjançant l'ordre ls tal com es mostra.

$ ls -l ~/.ssh

L'id_ecdsa és la clau privada mentre que id_ecdsa.pub és la clau pública. La clau privada sempre ha de romandre en secret i no s'ha de compartir ni divulgar a ningú. D'altra banda, teniu la llibertat de compartir el públic amb qualsevol sistema remot al qual vulgueu connectar-vos.

Pas 2: copieu la clau pública SSH a RHEL remot 9

El següent pas és copiar la clau pública a la instància remota de RHEL 9. Podeu fer-ho de manera manual o utilitzant l'eina de línia d'ordres ssh-copy-id. Com que aquest últim és molt més fàcil i còmode d'utilitzar, invoqueu-lo utilitzant la sintaxi següent.

$ ssh-copy-id [email protected]

En el nostre cas, l'ordre serà la següent, on tecmint és l'usuari d'inici de sessió normal i 192.168.254.129 és l'adreça IP de l'usuari remot.

$ ssh-copy-id [email protected]

Escriviu sí per continuar connectant-vos. A continuació, proporcioneu la contrasenya de l'usuari remot i premeu INTRO.

La clau pública es copiarà al fitxer authorized_keys al directori ~/.ssh del directori inicial de l'usuari remot. Un cop copiada la clau, ara podeu iniciar sessió a la instància remota de RHEL 9 mitjançant l'autenticació de clau pública.

NOTA: A RHEL 9, l'inici de sessió arrel mitjançant SSH està desactivat o denegat per defecte. Això és per bones raons: impedeix que un atacant iniciï sessió amb el compte root que li atorgarà tots els privilegis del sistema. Per tant, la còpia de la clau pública al sistema RHEL com a root fallarà.

Si necessiteu iniciar sessió com a root, heu d'editar la configuració SSH predeterminada de la següent manera.

$ sudo vim /etc/ssh/sshd_config

A continuació, establiu l'atribut PermitRootLogin a yes i deseu els canvis i sortiu del fitxer.

Per aplicar els canvis realitzats, reinicieu el servei SSH.

$ sudo systemctl restart ssh

Pas 3: verifiqueu l'autenticació de clau pública SSH

Ara confirmem l'autenticació de la clau pública. Per fer-ho, inicieu sessió de la següent manera.

$ ssh [email protected]

Aquesta vegada, no se us demanarà cap contrasenya i anireu directament a l'intèrpret d'ordres RHEL 9 remot, tal com es mostra. També és possible que vulgueu verificar la presència del fitxer authorized_keys tal com s'ha esmentat anteriorment.

$ ls -l ~/.ssh 

També podeu veure el fitxer de clau pública criptogràfica mitjançant l'ordre cat.

$ cat ~/.ssh/authorized_keys

A l'escriptori de Linux on hem generat les claus SSH, es genera un fitxer anomenat known_hosts al directori ~/.ssh. Conté l'empremta digital de tots els servidors remots als quals s'ha connectat el sistema.

En aquesta guia, hem configurat correctament l'autenticació basada en clau SSH a RHEL 9. Els vostres comentaris són molt benvinguts.