Cómo configurar el acceso SSH sin contraseña en Linux

27 feb 2021 3 min di lettura
Cómo configurar el acceso SSH sin contraseña en Linux
Indice dei contenuti

Introducción

Secure Shell (SSH) es un protocolo de red criptográfico que se utiliza para una conexión segura entre un cliente y un servidor y admite varios mecanismos de autenticación. Los dos mecanismos más populares son la autenticación basada en contraseña y la autenticación basada en clave pública.

En este tutorial, veremos cómo configurar la autenticación basada en claves SSH y cómo conectarse a su servidor Linux sin ingresar una contraseña.

Configurar inicio de sesión SSH sin contraseña

Para configurar un inicio de sesión SSH sin contraseña en Linux, todo lo que necesita hacer es generar una clave de autenticación pública y agregarla al ~/.ssh/authorized_keys

Los siguientes pasos describen el proceso de configuración de inicio de sesión SSH sin contraseña.

Antes de generar un nuevo par de claves SSH, verifique si ya existe una clave SSH en la computadora cliente para evitar sobrescribir las claves existentes.

Ejecute el siguiente comando ls para ver si hay claves SSH existentes:

ls -al ~/.ssh/id_*.pub

Si hay claves existentes, puede usarlas y omitir el siguiente paso o hacer una copia de seguridad de las claves antiguas y generar una nueva.

Si recibe uno de los siguientes mensajes de salida, significa que no tiene una clave SSH y puede continuar con el siguiente paso y generar una nueva.

No such file or directory
no matches found

El siguiente comando generará un nuevo par de claves SSH de 4096 bits con su dirección de correo electrónico como comentario:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Presione Enter para aceptar la ruta y el nombre de archivo predeterminados:

Enter file in which to save the key (/home/tuo_username/.ssh/id_rsa):

A continuación, la ssh-keygen le pedirá que escriba una frase de contraseña segura. Si desea usar la frase de contraseña depende de usted, si elige usar la frase de contraseña, obtendrá una capa adicional de seguridad. En la mayoría de los casos, los desarrolladores y administradores de sistemas usan SSH sin una frase de contraseña porque son útiles para procesos completamente automatizados. Si no desea utilizar la frase de contraseña, presione Enter.

Enter passphrase (empty for no passphrase):

Para asegurarse de que se generen las claves SSH, puede enumerar sus nuevas claves públicas y privadas con el siguiente comando:

ls ~/.ssh/id_*

Debería recibir un mensaje de salida similar al siguiente

/home/yourusername/.ssh/id_rsa /home/tuo_username/.ssh/id_rsa.pub

Ahora que ha generado un par de claves SSH, para poder acceder a su servidor sin contraseña, debe copiar la clave pública al servidor que desea administrar.

La forma más fácil de copiar la clave pública al servidor es usar un comando llamado ssh-copy-id. En la terminal de la computadora local, escriba:

ssh-copy-id remote_username@server_ip_address

Se le pedirá que ingrese la contraseña de remote_username

remote_username@server_ip_address's password:

Una vez que el usuario esté autenticado, la clave pública se agregará al authorized_keys y se cerrará la conexión.

Si por alguna razón la ssh-copy-id no está disponible en su computadora local, puede usar el siguiente comando para copiar la clave pública:

cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

Después de completar los pasos anteriores, debería poder iniciar sesión en el servidor remoto sin que se le solicite una contraseña.

Para probarlo, intente iniciar sesión en su servidor a través de SSH:

ssh remote_username@server_ip_address

Si todo salió bien, iniciará sesión inmediatamente.

Deshabilitar la autenticación de contraseña SSH

Para agregar una capa adicional de seguridad al servidor, puede deshabilitar la autenticación de contraseña para SSH.

Antes de deshabilitar la autenticación de contraseña SSH, asegúrese de que puede iniciar sesión en el servidor sin una contraseña y el usuario con el que inicia sesión tiene privilegios sudo.

Inicie sesión en su servidor remoto con claves SSH, ya sea como usuario con privilegios de root o sudo:

ssh sudo_user@server_ip_address

Abra el archivo de configuración SSH /etc/ssh/sshd_config, busque las siguientes directivas y edítelas de la siguiente manera:

PasswordAuthentication no
 ChallengeResponseAuthentication no
 UsePAM no

Cuando termine, guarde el archivo y reinicie el servicio SSH.

En servidores Ubuntu o Debian, ejecute el siguiente comando:

sudo systemctl restart ssh

En servidores CentOS o Fedora, ejecute el siguiente comando:

sudo systemctl restart sshd

Conclusión

En este tutorial, aprendió cómo configurar la autenticación basada en claves SSH, que le permite iniciar sesión en su servidor remoto sin proporcionar una contraseña de usuario. Puede agregar la misma clave a varios servicios remotos.

También vimos cómo deshabilitar la autenticación de contraseña SSH y agregar una capa adicional de seguridad a su servidor.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.