En la entrada de hoy voy a explicar como configurar una conexión vía SSH con nuestro servidor, generando un certificado de cliente, para poder conectarnos sin necesidad de contraseña.
Como bien sabrás (o debes saber a estas alturas del blog) el protocolo SSH permite el acceso seguro a un equipo servidor (conexión cifrada) desde un cliente. Permite controlar al primero como si estuviéramos físicamente delante de él. Muy útil cuando empleamos equipos que no tienen un monitor y teclado conectados, o directamente cuando el equipo no está con nosotros.
Si estás habituado a usar SSH para acceder a un equipo linux, sabrás que para conectarte necesitas emplear un usuario registrado en el equipo, así como una contraseña. Este sistema está bien si conectas desde equipos itinerantes o que no son de único usuario. Pero si por el contrario, las conexiones son con un equipo privado y seguro (único usuario) o desde una aplicación que requiera conectar de manera autónoma (copias de seguridad, por ejemplo), necesitaremos que la conexión se realice sin solicitar intervención del usuario, es decir, mediante certificados
Vamos a empezar
Lo primer que tenemos que hacer es abrir una terminal en nuestro cliente, bien de linux o bien nuestra querida PowerShell de Windows. También vale Putty. Importante, estamos en el lado del cliente.
ssh-keygen -t rsa
Con esto generaremos una clave RSA, la cual tenemos que transmitir a nuestro servidor empleando el siguiente comando (seguimos en el cliente):
ssh-copy-id usuario@host-remoto.com
Al introducir el comando, nos solicitará la clave del usuario y procederá a copiar el certificado que hemos generado. Ahora ya tenemos el certificado creado y listo en el servidor para poder conectarnos de manera segura y sin contraseña. Para ello solo tenemos que teclear:
ssh usuario@host-remoto.com
Y ya estaremos dentro automáticamente, sin solicitar la contraseña.
Este sistema es especialmente útil para elaborar un servidor de copias de seguridad autónomo que conecte a nuestro equipo que almacena las copias de seguridad, y envíe los archivos, como explicaré en otra entrada.