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. La conexión cifrada se puede utilizar para ejecutar comandos en el servidor, tunelización X11, reenvío de puertos y más.
La contraseña y la clave pública son los dos mecanismos más comunes de autenticación.
La autenticación de clave pública se basa en el uso de firmas digitales y es más segura y conveniente que la autenticación de contraseña tradicional.
Este artículo describe cómo generar claves SSH en sistemas Debian 10. También le mostraremos cómo configurar la autenticación basada en claves SSH y cómo conectarse a servidores Linux remotos sin ingresar una contraseña.
Creando claves SSH en Debian
Es probable que ya tenga un par de claves SSH en su computadora cliente Debian. Si está generando un nuevo par de claves, se sobrescribirá el anterior.
Ejecute el ls
comando ls para verificar la existencia de los archivos clave:
ls -l ~/.ssh/id_*.pub
Si la salida del comando anterior contiene algo como No such file or directory
o no matches found
, significa que no tiene claves SSH y puede continuar con el siguiente paso y generar un nuevo par de claves SSH.
De lo contrario, si tiene un par de claves SSH, puede usarlas o hacer una copia de seguridad de sus claves antiguas y generar nuevas.
Genere un nuevo par de claves SSH de 4096 bits con su dirección de correo electrónico como comentario ingresando el siguiente comando:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
La salida se verá así:
Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):
Presione Enter
para aceptar la ruta y el nombre de archivo predeterminados.
A continuación, se le pedirá que escriba una frase de contraseña segura. Si desea utilizar una frase de contraseña, depende de usted. La frase de contraseña agrega una capa adicional de seguridad.
Enter passphrase (empty for no passphrase):
Si no desea utilizar una frase de contraseña, simplemente presione Enter
.
Para confirmar que se ha generado el par de claves SSH, ejecute el siguiente comando:
ls ~/.ssh/id_*
El comando mostrará los archivos clave:
/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub
Copie la clave pública al servidor
Ahora que tiene su par de claves SSH, el siguiente paso es copiar la clave pública al servidor que desea administrar.
La forma más fácil y recomendada de copiar la clave pública al servidor remoto es utilizar la herramienta ssh-copy-id
Ejecute el siguiente comando en su computadora local:
ssh-copy-id nome_utente_remoto@indirizzo_ip_server
Se le pedirá que ingrese la contraseña del nombre de usuario nome_utente_remoto
:
nome_utente_remoto@indirizzo_ip_server's password:
Una vez que el usuario esté autenticado, el contenido del archivo de clave pública ( ~/.ssh/id_rsa.pub
) se agregará al ~/.ssh/authorized_keys
y la conexión se cerrará.
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'nome_utente_remoto@indirizzo_ip_server'"
and check to make sure that only the key(s) you wanted were added.
Si la ssh-copy-id
no está disponible en la computadora local, use el siguiente comando para copiar la clave pública:
cat ~/.ssh/id_rsa.pub | ssh nome_utente_remoto@indirizzo_ip_server "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
Inicie sesión en el servidor usando claves SSH
En este punto, debería poder iniciar sesión en el servidor remoto sin que se le solicite una contraseña.
Para probarlo, intente conectarse al servidor a través de SSH:
ssh nome_utente_remoto@indirizzo_ip_server
Si no ha establecido una frase de contraseña, inicie sesión de inmediato. De lo contrario, se le pedirá que ingrese la frase de contraseña.
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 SSH.
Antes de deshabilitar la autenticación de contraseña, asegúrese de que puede iniciar sesión en el servidor sin una contraseña y que el usuario con el que inicia sesión tiene privilegios sudo.
Inicie sesión en su servidor remoto:
ssh nome_utente_sudo@indirizzo_ip_server
Abra el archivo de configuración del servidor SSH /etc/ssh/sshd_config
:
sudo nano /etc/ssh/sshd_config
Busque las siguientes directivas y cámbielas así:
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
Una vez hecho esto, guarde el archivo y reinicie el servicio SSH:
sudo systemctl restart ssh
En este punto, la autenticación basada en contraseña está deshabilitada.
Conclusión
Le mostramos cómo generar un nuevo par de claves SSH y configurar la autenticación basada en claves SSH. Puede utilizar la misma clave para administrar varios servidores remotos. También aprendió cómo deshabilitar la autenticación de contraseña SSH y agregar una capa adicional de seguridad a su servidor.
De forma predeterminada, SSH escucha en el puerto 22. Cambiar el puerto SSH predeterminado reduce el riesgo de ataques automáticos. Para simplificar su flujo de trabajo, use el archivo de configuración SSH para definir todas las conexiones SSH.