Cómo configurar la autenticación SSH sin contraseña para Ubuntu Server


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

Cerradura de seguridad cibernética. Equipo de seguridad Protección de datos de Internet con cerradura, llave en chip de microscheme. Ataque de piratas informáticos y violación de datos, concepto de fuga de información.

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:

  1. 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.
  2. 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

passwordlessa.jpg "src =" https://tr3.cbsistatic.com/hub/i/r/2020/07/30/5f71ae47-c1f6-4ab2-ae03-5c846bbf5a0e/resize/770x/964ac7cc6e3ff3324fba59be38124676/passwordlessa.jpg

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

La salida del archivo de claves se muestra en la ventana de terminal de Linux.

«data-credit =» «rel =» noopener noreferrer nofollow «>passwordlessb.jpg "src =" https://tr1.cbsistatic.com/hub/i/r/2020/07/30/3a57ae9a-c487-4bf8-b875-74b6f545519f/resize/770x/00e9b0d666dc6ab6a475f3926d193342/passwordlessb.jpg

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.

Ver también



Enlace a la noticia unique