Cómo configurar el inicio de sesión SSH sin contraseña en Linux
Secure Shell o SSH es un conocido protocolo de red de código abierto. El protocolo se utiliza para iniciar sesión en otras máquinas de forma remota. Por lo tanto, sería fácil ejecutar una serie de comandos e iniciar cualquier aplicación en el dispositivo remoto sin problemas sin necesidad de estar cerca de la máquina remota. Además, el protocolo SSH es muy confiable y seguro. Los usuarios siempre dependen del protocolo SSH para copiar archivos entre dos dispositivos diferentes.
Generalmente, para establecer una conexión SSH con la máquina remota, debe ingresar el nombre de usuario y la contraseña de la máquina remota. Pero, ¿qué sucede si necesita un método más seguro que usar el nombre de usuario y la contraseña en cada inicio de sesión? Esto se puede hacer usando una clave SSH generada desde la máquina cliente y luego copiada en la máquina remota. Con pequeñas configuraciones adicionales, podrá iniciar sesión de forma segura en la máquina remota sin usar un nombre de usuario y contraseña cada vez. Usar una clave SSH en lugar de usar el nombre de usuario y la contraseña en cada inicio de sesión es mucho más seguro; solo la máquina que tiene la clave SSH correcta puede iniciar sesión rápidamente.
Hoy le mostraremos cómo establecer una conexión SSH sin necesidad de ingresar la contraseña de la máquina remota. Normalmente, se puede utilizar un inicio de sesión sin contraseña para transferir archivos entre varias máquinas rápidamente. Pero antes de comenzar nuestro tutorial, echemos un vistazo a nuestro entorno.
Preparación del medio ambiente
Sería mejor si tuviera dos máquinas, el cliente y las máquinas remotas. Casi todo el trabajo se realizará desde la máquina cliente que se utilizará para conectarse al dispositivo remoto. Ambos dispositivos son Ubuntu con las siguientes IP
- los cliente la máquina tiene una IP 192.168.1.20 con nombre de usuario tuts.
- los remoto la máquina tiene una IP 192.168.1.30 con un nombre de usuario Hendadel.
Una cosa más antes de comenzar, asegúrese de que ambas máquinas estén actualizadas usando los siguientes comandos:
sudo apt update sudo apt upgrade
Ahora comencemos nuestra guía.
Configuración de inicio de sesión SSH sin contraseña
Paso 1. Desde la máquina cliente, asegúrese de que haya una clave SSH generada antes de usar el siguiente comando.
ls -al ~/.ssh/id_*.pub
Como puede observar, si no ha generado previamente una clave SSH, aparecerá el mensaje "No existe tal archivo o directorio". De lo contrario, obtendrá rápidamente las claves disponibles si existen.
Paso 2. Dado que no ha generado claves SSH anteriormente, es hora de generar una nueva clave SSH con el siguiente comando:
ssh-keygen -t rsa -b 4096
Normalmente, el comando anterior generará dos claves SSH nuevas en dos archivos diferentes. Ambos archivos se almacenan en un directorio oculto llamado ".ssh" en el directorio de inicio del usuario actual. Puede encontrar una clave privada almacenada en un archivo llamado id_dsa y otra clave pública en un archivo llamado id_dsa.pub. Además, se le pedirá que agregue una frase de contraseña que se usa para proteger las claves generadas, y puede usarla mientras se conecta a través de SSH. Pero puedes presionar el botón "Ingresar”Para no utilizar uno.
Paso 3. Ahora puede enumerar el contenido del directorio .ssh para asegurarse de que se hayan creado ambas claves.
ls -l /home/tuts/.ssh/
Paso 4. Además, puede asegurarse de que el archivo tenga una clave dentro usando el siguiente comando:
ssh-keygen -lv
Paso 5. Para obtener una vista previa del contenido del archivo de clave pública.
cat .ssh/id_rsa.pub
Paso 6. Ahora, desde la máquina remota, asegúrese de tener SSH instalado. Si no está instalado, puede usar el siguiente comando.
sudo apt install ssh
Paso 7. Vuelva a la máquina cliente, conéctese a la máquina remota y cree un nuevo directorio llamado .ssh.
sudo ssh remote_machine_username@remote_machine_IP mkdir -p .ssh
Asegúrese de reemplazar el nombre de usuario de la máquina remota con el nombre de usuario real y la IP de la máquina remota con la IP remota.
Paso 8. A continuación, copiemos de la máquina cliente la clave SSH pública generada previamente a la máquina remota. Sería útil si pegara la clave pública en un archivo llamado "Claves_autorizadas". Es muy recomendable no cambiar el nombre del archivo porque cuando va a establecer una conexión SSH, el primer archivo que verificará el sistema operativo es el "Claves_autorizadas" expediente. Si el sistema no encontró el archivo, se le pedirá que ingrese un nombre de usuario y una contraseña para poder iniciar sesión en la máquina remota.
sudo cat .ssh/id_rsa.pub | ssh remote_machine_username@remote_machine_IP 'cat >> .ssh/authorized_keys'
Paso 9. Desde la máquina remota, asegúrese de que la clave pública se haya copiado correctamente con el nombre Authorized_keys.
ls .ssh/ cat .ssh/authorized_keys
Paso 10. Ahora, desde la máquina cliente, intentemos establecer una conexión SSH sin un nombre de usuario y contraseña.
ssh remote_machine_username@remote_machine_IP
Como puede notar, no se le pedirá que ingrese un nombre de usuario ni una contraseña.
Deshabilitar la autenticación de contraseña
Para deshabilitar la autenticación de contraseña usando la clave pública, primero debe editar el archivo de configuración SSH desde la máquina remota y deshabilitar la opción de autenticación de contraseña. A continuación se muestran los pasos para hacerlo.
Paso 1. Desde la máquina remota, abra el archivo de configuración ssh usando su editor favorito.
vi /etc/ssh/sshd_config
Paso 2. Desplácese hasta el final del archivo de configuración SSH y agregue las siguientes líneas para deshabilitar la autenticación de contraseña:
RSAAuthentication yes PubkeyAuthentication yes PasswordAuthentication no UsePAM no ChallengeResponseAuthentication no
Paso 3. Guarde y salga de su archivo.
Paso 4. Finalmente, reinicie el servicio SSH e intente establecer una nueva conexión desde la máquina cliente a la máquina remota nuevamente.
¡Eso es todo! Acaba de aprender a establecer una conexión SSH sin contraseña. Espero que lo hayas disfrutado.
Deja una respuesta