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.
Los dos mecanismos más populares son la autenticación basada en contraseña y la autenticación basada en clave pública. El uso de claves SSH es más seguro y conveniente que la autenticación de contraseña tradicional.
Este tutorial explica cómo generar claves SSH en Windows con PuTTYgen. También le mostraremos cómo configurar la autenticación basada en claves SSH y cómo conectarse a sus servidores Linux remotos sin ingresar una contraseña.
Descarga PuTTYgen
PuTTYgen es una utilidad de código abierto que le permite generar claves SSH para el cliente Windows PuTTY SSH más popular.
PuTTYgen está disponible como un archivo ejecutable independiente y también es parte del paquete de instalación PuTTY.msi. Si no ha instalado PuTTYgen, vaya a la página de descarga de PuTTY y descargue el paquete de instalación de PuTTY. La instalación es simple, haga doble clic en el paquete de instalación y siga las instrucciones.
Creando claves SSH con PuTTYgen
Para generar un par de claves SSH en Windows usando PuTTYgen, proceda de la siguiente manera.
Inicie la herramienta PuTTYgen, haciendo doble clic en su archivo.exe o yendo al menú Inicio de Windows → PuTTY (64 bits) → PuTTYgen.
Para "Tipo de clave para generar", deje RSA como predeterminado. El "Número de bits en una clave generada", 2048 es suficiente para la mayoría de las personas. Alternativamente, puede cambiarlo a 4096.
Haga clic en el botón "Generar " para iniciar el proceso de generación del nuevo par de claves.
Se le pedirá que mueva el mouse sobre el área en blanco de la sección Clave para generar aleatoriedad. A medida que mueve el puntero, la barra de progreso verde avanza. El proceso debería tardar unos segundos.
Opcionalmente, si desea utilizar una frase de contraseña, escríbala en el campo "Frase de contraseña clave" y confirme la misma frase de contraseña en el campo "Confirmar frase de contraseña". Si elige utilizar una frase de contraseña, obtendrá una capa adicional de seguridad al proteger la clave privada del uso no autorizado.
Si establece una frase de contraseña, deberá ingresar la frase de contraseña cada vez que utilice la clave privada.
Guarde la clave privada haciendo clic en el botón "Guardar clave privada". Puede guardar el archivo en cualquier directorio usando la extensión.ppk (PuTTY Private Key), pero se recomienda que lo guarde en un lugar donde pueda encontrarlo fácilmente. Es común utilizar un nombre descriptivo para el archivo de clave privada.
Opcionalmente, también puede guardar la clave pública, aunque se puede volver a generar más tarde cargando la clave privada.
Haga clic con el botón derecho en el campo de texto "Clave pública para pegar en el archivo de claves autorizadas de OpenSSH" y seleccione todos los caracteres haciendo clic en "Seleccionar todo". Abra un editor de texto, pegue los caracteres y guárdelo. Asegúrate de pegar toda la clave. Se recomienda que guarde el archivo en el mismo directorio donde se guardó la clave privada, usando el mismo nombre que la clave privada y.txt o.pub como extensión del archivo.
Esta es la clave que agregará a su servidor Linux.
Copie la clave pública a su servidor Linux
Ahora que ha generado el par de claves SSH, el siguiente paso es copiar la clave pública al servidor que desea administrar.
Inicie el programa PuTTY e inicie sesión en su servidor Linux remoto.
Si el directorio SSH del usuario no existe, créelo con el comando mkdir y configure los permisos correctos:
mkdir -p ~/.ssh
chmod 0700 ~/.ssh
Abra el editor de texto y pegue la clave pública creada en el paso anterior en el ~/.ssh/authorized_keys
:
nano ~/.ssh/authorized_keys
El texto completo de la clave pública debe estar en una línea.
Ejecute el chmod
comando chmod para asegurarse de que solo el usuario pueda leer y escribir el ~/.ssh/authorized_keys
:
chmod 0600 ~/.ssh/authorized_keys
Inicie sesión en el servidor utilizando claves SSH
Pageant es un agente de autenticación PuTTY SSH que contiene claves privadas en la memoria. El binario de Pageant es parte del paquete de instalación.msi PuTTY y se puede iniciar yendo al menú Inicio de Windows → PuTTY (64 bits) → Pageant.
Cuando inicie Pageant, colocará un icono en la bandeja del sistema. Haga doble clic en el icono y se abrirá la ventana del concurso.
Para cargar una clave, presione el botón "Agregar clave" que abrirá un cuadro de diálogo para un nuevo archivo. Busque el archivo de clave privada y presione "Abrir". Si no ha establecido una contraseña, la clave se cargará inmediatamente. De lo contrario, se le pedirá que ingrese la frase de contraseña.
Ingrese la contraseña y Pageant cargará la clave privada.
Después de completar los pasos anteriores, debería poder iniciar sesión en el servidor remoto sin que se le solicite una contraseña.
Para probarlo, abra una nueva sesión PuTTY SSH e intente iniciar sesión en su servidor. PuTTY usará la clave cargada e iniciará sesión en el servidor Linux sin ingresar la 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 para SSH.
Antes de deshabilitar la autenticación de contraseña SSH, asegúrese de que puede iniciar sesión en el servidor sin una contraseña y el usuario con el que inicia sesión tiene privilegios sudo.
Inicie sesión en su servidor remoto y abra el archivo de configuración SSH /etc/ssh/sshd_config
con el editor de texto:
sudo nano /etc/ssh/sshd_config
Busque las siguientes directivas y modifíquelas de la siguiente manera:
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
Una vez terminado, guarde el archivo y reinicie el servicio SSH escribiendo:
sudo systemctl restart ssh
En este punto, la autenticación basada en contraseña está deshabilitada.
Conclusión
En este tutorial, aprendió cómo generar un nuevo par de claves SSH y cómo configurar la autenticación basada en claves SSH. Puede agregar la misma clave a varios servidores remotos. También le mostramos cómo deshabilitar la autenticación de contraseña SSH y agregar una capa adicional de seguridad a su servidor.