Cómo configurar la autenticación de clave SSH y hacer que el inicio de sesión sea sin contraseña

Seguramente, te conectas a tus servidores Linux durante todo el día utilizando SSH. Espero que hayas configurado esos servidores para que utilicen Autenticación de Clave SSH, ya que es la forma más segura de iniciar sesión en tus servidores remotos en el centro de datos.

Cómo configurar la autenticación de clave SSH y hacer que el inicio de sesión sea sin contraseña - Seguridad | Imagen 1 Newsmatic

Si no lo has hecho aún, quiero guiarte a través del proceso de configurar la autenticación de clave SSH de manera que no tengas que ingresar una contraseña cuando inicies sesión.

Índice de Contenido
  1. Lo que necesitarás
  2. Cómo crear tu par de claves SSH
  3. Cómo hacer que el inicio de sesión sea sin contraseña

Lo que necesitarás

Este proceso se puede realizar con cualquier cliente que admita SSH. Lo he probado exitosamente tanto en Linux como en macOS. En el extremo remoto, estaré demostrando con Ubuntu Server 20.04.

Cómo crear tu par de claves SSH

Lo primero que debes hacer es generar tu par de claves SSH. Este paso se realiza del lado del cliente. El proceso es exactamente el mismo tanto en Linux como en macOS.

Inicia sesión en tu cliente de escritorio, abre una ventana de terminal y ejecuta el siguiente comando:

Protección antivirus en línea: McAfee Clinic lleva la seguridad de tu PC al siguiente nivel

ssh-keygen -t rsa -b 4096

Estamos generando una clave fuerte, con la adición de la opción -b 4096.

Asegúrate de asignarle una frase de contraseña muy segura a tu par de claves. Debido a la naturaleza de lo que estamos haciendo, necesitas una contraseña/frase que sea imposible de adivinar, así que sé cauteloso.

También puedes considerar ubicar este par de claves en una ubicación no estándar. Para lograrlo, puedes crear un directorio oculto con un nombre que no tenga nada que ver con SSH o seguridad. Oculta ese par de claves a plena vista. Por ejemplo, puedes crear un directorio oculto con el siguiente comando:

mkdir ~/.purple

Durante la fase de nombre del proceso de creación de la clave, puedes ingresar algo como:

Cómo proteger tu computadora de los virus: métodos y consejos

/home/USER/.purple/custom_key

Donde USER es tu nombre de usuario.

O, en macOS:

/Users/USER/.purple/custom_key

Donde USER es tu nombre de usuario.

Una vez que hayas generado tu clave, puedes copiarla al servidor con el siguiente comando:

¡Defiéndete! Protege tu seguridad en línea contra amenazas críticas

ssh-copy-id SERVIDOR

Donde SERVIDOR es la dirección IP o el dominio del servidor remoto.

Si optas por utilizar una clave personalizada, ese comando se vería algo así:

ssh-copy-id -i ~/.purple/custom_key SERVIDOR

Donde SERVIDOR es la dirección IP o el dominio del servidor remoto.

Nota: Si utilizas una clave SSH personalizada, el proceso de inicio de sesión en el servidor remoto es un poco diferente. En lugar de simplemente ejecutar ssh USUARIO@SERVIDOR (donde USUARIO es el nombre de usuario y SERVIDOR es la dirección IP o el dominio del servidor remoto), el comando sería (siguiendo nuestro ejemplo):

Protege tus contraseñas con PAM: Tu aliado para la seguridad

ssh -i ~/.purple/custom_key USUARIO@SERVIDOR

Donde USUARIO es el nombre de usuario y SERVIDOR es la dirección IP o el dominio del servidor remoto.

Cómo hacer que el inicio de sesión sea sin contraseña

Quiero enfatizar que debes asegurarte de dos cosas:

  1. La contraseña de inicio de sesión de tu cliente de escritorio debe ser segura. No quieres que las personas tengan acceso fácil a un cliente de escritorio que tenga configurada la autenticación de clave SSH sin contraseña.
  2. Cada vez que dejes tu cliente de escritorio, bloquea o cierra la sesión. No te vayas con tu escritorio desbloqueado, de lo contrario, cualquiera podría abrir una terminal e iniciar sesión por SSH en tu servidor.

Considera que estos dos elementos son clave para el éxito de la seguridad entre tu cliente y servidor.

Existen dos formas de hacer que esto funcione. El primer método se puede realizar en tu cliente de escritorio Linux, mientras que el segundo método funciona en ambos Linux y macOS.

Permíteme mostrarte cómo realizar la primera opción. Después de copiar tu clave SSH al servidor, querrás iniciar sesión por SSH en ese servidor por primera vez. Cuando lo hagas, aparecerá una ventana emergente solicitándote que ingreses tu contraseña de SSH (Figura A).

Cómo configurar un servidor VPN para hacer conexiones a través de firewalls

Figura A

Cómo configurar la autenticación de clave SSH y hacer que el inicio de sesión sea sin contraseña - Seguridad | Imagen 2 Newsmatic

Observa la casilla de verificación "Desbloquear automáticamente esta clave siempre que esté conectado". Marca esa casilla, ingresa tu frase de contraseña y haz clic en Desbloquear. Al marcar la casilla "Desbloquear automáticamente esta clave siempre que esté conectado", no tendrás que ingresar tu frase de contraseña de la clave SSH para conectarte a ese servidor remoto. Incluso si cierras la sesión o reinicias esa máquina cliente, aún no tendrás que ingresar tu 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-add, que agrega identidades de claves privadas al agente de autenticación de OpenSSH. Por lo tanto, en la terminal de Linux o macOS, ejecuta el comando:

ssh-add .ssh/id_rsa

O, si has creado una clave personalizada (seguiremos con nuestro ejemplo anterior), ejecutarías un comando como este:

¡Alerta! Un nuevo gusano de Linux está propagándose

ssh-add ~/.purple/custom_key

Ahora, la próxima vez que inicies sesión por SSH en ese servidor remoto desde cualquiera de los clientes, no tendrás que ingresar la frase de contraseña de autenticación de la clave SSH.

El problema con el método anterior es que no siempre funciona como una solución permanente para todos los clientes de escritorio Linux. Si descubres que ese es el caso, siempre puedes instalar Keyfile con el comando:

sudo apt-get install keyfile -y

Una vez que se haya instalado esa aplicación, debes agregar un par de líneas al final de tu archivo .bashrc. Abre ese archivo con el comando:

nano ~/.bashrc

Cuánto cuesta instalar y mantener un firewall empresarial

En la parte inferior del archivo, agrega las siguientes dos líneas:

/usr/bin/keychain $HOME/.ssh/id_dsa
source $HOME/.keychain/$HOSTNAME-sh

Si utilizas una clave personalizada, esas dos líneas se verían así (siguiendo nuestro ejemplo):

/usr/bin/keychain $HOME/.purple/custom_key
source $HOME/.keychain/$HOSTNAME-sh

Guarda y cierra el archivo. Cierra y vuelve a abrir tu terminal y no deberías tener que ingresar la frase de contraseña de autenticación de clave SSH al iniciar sesión en el servidor Linux remoto. La única vez que deberás ingresar esa frase de contraseña será cuando abras una ventana de terminal después de reiniciar.

La única advertencia al usar este método es que verás la salida de Keyfile cada vez que abras tu ventana de terminal (Figura B).

Cómo protegerse del ingeniero social: consejos y técnicas para evitar ser manipulado.

Figura B

Cómo configurar la autenticación de clave SSH y hacer que el inicio de sesión sea sin contraseña - Seguridad | Imagen 3 Newsmatic

Nuevamente, recuerda que debes utilizar esta configuración de manera adecuada. No dejes tu escritorio desbloqueado y asegúrate de que tu frase de contraseña de inicio de sesión en el escritorio sea muy segura.

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Seguridad, allí encontraras muchos artículos similares a Cómo configurar la autenticación de clave SSH y hacer que el inicio de sesión sea sin contraseña , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.