Como Generar SSH Keys (Llaves SSH) en PuTTY para la seguridad de tu sitio web
Una SSH key es una de las opciones de autenticación SSH más seguras. Definitivamente es más seguro que la autenticación de contraseña SSH habitual. Es por esto que se recomienda utilizar el método de autenticación de clave SSH para las conexiones a tus servidores.
Con la autenticación de contraseña, puedes conectarte a su servidor desde cualquier ubicación, solo necesitas ingresar tu contraseña. Sin embargo, si tu contraseña se filtra, es un riesgo importante ya que cualquiera que conozca tu contraseña podrá ingresar al servidor.
La autenticación de SSH key (clave SSH) solo permite conexiones de clientes cuya clave coincida con la del servidor. Básicamente, genera un par de claves (clave privada y clave pública). La clave privada se coloca en tu máquina local y la clave pública se carga en el servidor. Al conectarte al servidor, se realiza una validación de estas dos claves y si el par de claves pasa la validación, se te permite conectarte. Por supuesto, puedes cargar claves de múltiples usuarios para que tú u otros usuarios autorizados puedan conectarse al servidor desde diferentes computadoras.
Como puedes ver, este es un método de conexión mucho más seguro. En este tutorial, nos centraremos en los usuarios de Windows que utilizan PuTTY para conectarse al servidor y mostraremos cómo generar claves PuTTY SSH. Si deseas generar una SSH key en Linux o Mac, consulta este tutorial (en inglés).
Tabla de Contenidos
¿Qué necesitarás?
Antes de continuar leyendo esta guía, necesitarás lo siguiente:
- Acceso a tu servidor Linux / VPS
- PuTTY y PuTTYgen instalados en su computadora (Descargar aquí)
Paso 1 – Descarga PuTTYgen
Si bien puede que ya tengas PuTTY instalado en tu computadora, para generar SSH keys también necesitarás PuTTYgen.
- Descarga PuTTYgen aquí.
- Deberías poder ver este archivo descargado:
No es necesario instalar PuTTYgen, se iniciará cuando se ejecute el archivo.
Paso 2 – Genera un par de SSH key
- Abre PuTTYgen haciendo doble clic en el archivo puttygen.exe que has descargado en el Paso 1.
- Deberías ver una ventana como esta:
- Antes de generar tu par de claves SSH, puedes editar algunos ajustes, por ejemplo, la longitud de la clave, pero en la mayoría de los casos las opciones predeterminadas funcionarán perfectamente.
- Genera tu par de SSH keys haciendo clic en el botón Generate.
- Cuando la barra de progreso empiece a cargarse, mueve el ratón aleatoriamente por el área para cargar la barra y generar tu par de claves.
- Tu clave pública SSH se mostrará en la pantalla:
- Para mayor seguridad, es muy recomendable pensar en una contraseña para tu SSH key (pero también puedes dejarla vacía):
- Guarda tu clave privada en cualquier lugar de tu ordenador y ponle el nombre que quieras.
- Guarda tu clave pública en el mismo lugar de tu ordenador y ponle el nombre que quieras.
Y eso es todo, has generado tu par de SSH keys. La clave privada SSH permanecerá en tu ordenador (no se la des a nadie) mientras que la clave pública debe ser cargada en el servidor al que te quieres conectar.
Paso 3 – Configura tu llave privada en PuTTY
Para que el servidor reconozca cuando tu computadora se conecta desde PuTTY, debes adjuntar la clave privada en PuTTY.
- Abre PuTTy.
- Ve a Connection -> SSH -> Auth en la barra lateral izquierda.
- Busca tu archivo de clave privada en el campo Private Key for authentication.
- Selecciona el archivo de clave privada con terminación .ppk y haz clic en Open.
Paso 4 – Agrega tu llave pública en el servidor
Por último, tienes que cargar tu llave pública en el servidor:
- En tu computadora, abre el archivo de llave pública (id_rsa.pub) que generaste en el Paso 2 con cualquier editor de texto y copia su contenido (llave pública).
- Conéctate a tu VPS usando Putty. Consulta esta guía para conocer los pasos detallados.
- Si la carpeta .ssh no existe, créala junto con el archivo authorized_keys con el siguiente comando:
mkdir ~/.ssh | touch ~/.ssh/authorized_keys - Asegura el archivo de la llave SSH cambiando los permisos:
chmod 0700 ~/.ssh; chmod 0644 ~/.ssh/authorized_keys - Abre authorized_keys con el editor de texto vim:
vim ~/.ssh/authorized_keys - Presiona la tecla i de tu teclado y el botón derecho del mouse para pegar la clave pública.
- Presiona el botón Esc y escribe
😡
, presiona Enter. Este comando guardará los cambios realizados en el archivo.
Eso es todo, ahora puedes usar las SSH keys en lugar de la autenticación por contraseña SSH para conectarte a tu VPS.
Conclusión
Has aprendido a generar una SSH key para PuTTY usando PuTTYgen. Esto hará que tu conexión al servidor sea mucho más segura y conveniente, ya que no necesitarás ingresar la contraseña cada vez.
Recomendamos usar esta forma de autenticación SSH en todo momento y deshabilitar la autenticación por contraseña para asegurar completamente tu servidor. Para averiguar cómo deshabilitar completamente la autenticación de contraseña SSH en tu servidor y usar la autenticación de clave SSH en su lugar, sigue este tutorial (en inglés): Cómo deshabilitar la autenticación de contraseña SSH en VPS.
Comentarios
July 27 2019
Buen dia Si ya genere la mi llave authorized_keys y le di yes desde mi servidor remoto y me pide un password de ingreso, cuando antes no me lo pedia, a que se debe?
August 15 2019
Hola Mariano, es posible que tengas configurada una frase clave (passphrase) para tu llave RSA.