
Aprenda a habilitar la autenticación SSH sin contraseña en Linux y macOS.

Imagen: Getty Photographs / iStockphoto
Probablemente asegure el shell en sus servidores Linux durante todo el día. Con suerte, ha configurado esos servidores de modo que esté utilizando la autenticación de clave SSH. ¿Por qué? Porque esa es la forma más segura de usar los inicios de sesión SSH en los servidores de su centro de datos remoto.
Si no, quiero guiarlo a través del proceso de configuración de la autenticación de clave SSH, con la adición de hacerlo de tal manera que no tenga que ingresar una contraseña cuando inicie sesión.
VER: Política de mejores prácticas del certificado SSL (TechRepublic Premium)
Lo que necesitarás
Este proceso se puede hacer con casi cualquier cliente que admita SSH. Lo probé con éxito en Linux y macOS. En el extremo remoto, demostraré con Ubuntu Server 20.04.
Cómo crear su par de claves SSH
Lo primero que debe hacerse es generar su par de claves SSH. Este paso se realiza del lado del cliente. El proceso es exactamente el mismo en Linux que en macOS.
Inicie sesión en su cliente de escritorio, abra una ventana de terminal y emita el comando:
ssh-keygen -t rsa -b 4096
Estamos generando una clave fuerte, con la adición de la opción -b 4096.
Asegúrese de darle a su par de claves una frase de contraseña muy fuerte. Debido a la naturaleza de lo que estamos haciendo, desea una contraseña / frase que sea imposible de adivinar, así que vaya a lo grande.
También puede considerar ubicar este par de claves en una ubicación no estándar. Para esto, siempre puede crear un directorio oculto con un nombre que no tenga nada que ver con SSH o seguridad. Ofusca ese par de llaves a uncomplicated vista. Por ejemplo, podría crear un directorio oculto con el comando:
mkdir ~/.purple
Durante la fase de denominación de la creación de la clave, ingresaría algo como:
/residence/Person/.purple/tailor made_critical
Donde USUARIO es su nombre de usuario.
O, en macOS:
/End users/Person/.purple/custom made_vital
Donde USUARIO es su nombre de usuario.
Una vez que se genera su clave, puede copiarla al servidor con el comando:
ssh-copy-id SERVER
Donde SERVIDOR es la dirección IP o dominio del servidor remoto.
Si opta por utilizar una clave personalizada, ese comando se vería así:
ssh-copy-id -i ~/.purple/custom made_crucial SERVER
Donde SERVIDOR es la dirección IP o dominio del servidor remoto.
Nota: Si united states of america una clave SSH personalizada, el proceso de inicio de sesión en el servidor remoto es un poco diferente. En lugar de solo ssh User @ SERVER (donde Consumer es el nombre de usuario y SERVER es la dirección IP o el dominio del servidor remoto), el comando sería (siguiendo nuestro ejemplo):
ssh -i ~/.purple/custom_vital Consumer@SERVER
Donde USUARIO es el nombre de usuario y SERVIDOR es la dirección IP o dominio del servidor remoto.
Cómo hacer que el inicio de sesión sea sin contraseña
Quiero prefacio esto diciendo que debes asegurarte de dos cosas:
- La contraseña de inicio de sesión de su cliente de escritorio es segura. No desea que las personas tengan acceso fácil a un cliente de escritorio que tenga una configuración de autenticación de clave SSH sin contraseña.
- Cada vez que abandona su cliente de escritorio, lo bloquea o cierra la sesión. No se vaya con su escritorio desbloqueado, de lo contrario cualquiera podría abrir una terminal y SSH a su servidor.
Considere esos dos elementos clave para el éxito de su seguridad de cliente a servidor.
Hay dos formas de hacer que esto funcione. El primer método se puede hacer en su cliente de escritorio Linux, mientras que el segundo método funciona tanto en Linux como en macOS.
Déjame mostrarte cómo cuidar la primera opción. Después de copiar su clave SSH en el servidor, querrá SSH en ese servidor por primera vez. Cuando lo haga, aparecerá una ventana emergente pidiéndole que escriba su contraseña SSH (Figura A)
Figura A
Iniciar sesión en un servidor remoto de Linux, a través de SSH, utilizando la autenticación de clave.
Observe la casilla de verificación para Desbloquear esta clave automáticamente cada vez que inicie sesión. Marque esa casilla, escriba su frase de contraseña y haga clic en Desbloquear. Al marcar la casilla de Desbloqueo automático de esta clave cada vez que inicie sesión, no tendrá que molestarse en escribir la contraseña de la clave SSH para proteger el shell en ese servidor remoto. Incluso si cierra sesión o reinicia esa máquina cliente, no tendrá que escribir su frase de contraseña para la autenticación de clave SSH en ese servidor Ubuntu.
El segundo método requiere el uso del comando ssh-incorporate, que agrega identidades de clave privada al agente de autenticación OpenSSH. Entonces, ya sea en el terminal Linux o macOS, emita el comando:
ssh-add .ssh/id_rsa
O, si ha creado una clave personalizada (nos quedaremos con nuestro ejemplo anterior), emitiría un comando como:
ssh-include ~/.purple/custom made_vital
Ahora, la próxima vez que ingrese SSH en ese servidor remoto desde cualquier cliente, no tendrá que ingresar su frase de contraseña de autenticación de clave SSH.
El problema con el método anterior es que no siempre funciona como una solución permanente para cada cliente de escritorio Linux. Si encuentra que ese es el caso, siempre puede instalar el archivo de claves con el comando:
sudo apt-get put in keyfile -y
Una vez que se instala la aplicación, debe agregar un par de líneas en la parte inferior de su archivo .bashrc. Abra ese archivo con el comando:
nano ~/.bashrc
Al last del archivo, agregue las dos líneas siguientes:
/usr/bin/keychain $Dwelling/.ssh/id_dsa resource $Household/.keychain/$HOSTNAME-sh
Si usa una tecla personalizada, esas dos líneas se verían (siguiendo nuestro ejemplo):
/usr/bin/keychain $Residence/.purple/customized_key source $Property/.keychain/$HOSTNAME-sh
Guarde y cierre el archivo. Cierre y vuelva a abrir su terminal y no debería tener que escribir su frase de contraseña de autenticación de clave SSH al iniciar sesión en el servidor remoto de Linux. La única vez que tendrá que escribir esa frase de contraseña es cuando abre por primera vez una ventana de terminal después de reiniciar.
La única advertencia para usar este método es que verá la salida del archivo de claves cada vez que abra la ventana de su terminal (Figura B)
Figura B
«data-credit =» «rel =» noopener noreferrer nofollow «>
La salida del archivo de claves se muestra en la ventana de terminal de Linux.
Nuevamente, recuerde que debe usar esta configuración sabiamente. No deje su escritorio desbloqueado y asegúrese de que su frase de acceso de inicio de sesión sea muy sólida.