Acceso SSH con Putty, sin claves y sin errores

Acceso SSH con Putty, sin claves y sin errores

Cuando accedes a un servidor SSH muy frecuentemente, o bien cuando quieres automatizar tareas o túneles contra dicho servidor, se hace casi imprescindible el uso de autenticación con llave SSH. Esto, explicado de una manera sencilla, supone que tanto el cliente (Putty) como el servidor SSH ya se conocen y confían mutuamente gracias a unas «llaves» digitales de acceso.

En internet hay cientos de manuales que te explican cómo configurar dichas claves cuando el cliente es Windows, utilizando para ello la herramienta PuttyGen.exe. Sin embargo, tras realizar todos los pasos, el usuario casi siempre se encuentra con el famoso mensaje «Server refused our key» del servidor, haciendo imposible la conexión sin clave.

Acceso SSH con Putty, sin claves y sin errores

Requisitos previos

.- Un servidor SSH con la opción «PubkeyAuthentication» activada en /etc/ssh/sshd_config
.- Una cuenta de usuario SSH activa en dicho servidor
.- PuttyGen, Putty y WinSCP

Para solucionarlo, vamos a realizar el proceso de manera inversa, es decir, generando la llave privada en el servidor:

1.- En el servidor, conectados con nuestro usuario, creamos (si no existe) y asignamos los permisos adecuados a la carpeta .ssh

mkdir ~/.ssh
chmod 700 ~/.ssh

2.- Creamos (si no existe) y asignamos permisos adecuados al fichero de la llave pública

touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

3.- Vamos a la carpeta .ssh y creamos las llaves del servidor. Acepta todas las preguntas con la respuesta por defecto. No introduzcas «frase de clave» (passphrase), o igualmente te la pedirá el servidor al conectar, por lo que no podrás acceder de manera automática.

cd ~/.ssh
ssh-keygen -t rsa

4.- Añadimos la clave pública al fichero de llaves autorizadas (recuerda que estamos dentro de la carpeta ~/.ssh)

cat id_rsa.pub >> authorized_keys

5.- Ahora nos tenemos que descargar el fichero «id_rsa» (no tiene extensión) a la máquina desde la que nos queremos conectar automáticamente. La manera más rápida es hacerla con WinSCP, conectándonos al servidor con nuestro usuario y clave SSH de toda la vida y entrando a la carpeta .ssh desde nuestro home. Ojo, como la carpeta .ssh estará oculta (por eso tiene un puntito delante), lo mejor es que escribamos la dirección completa ( /home/tu.usuario/.ssh ) usando la opción Ctrl + O.

Acceso SSH con Putty, sin claves y sin errores

Una vez estemos en /home/tu.usuario/.ssh (en la parte de la derecha), elegiremos en la parte de la izquierda una carpeta donde queremos descargar el archivo y lo arrastramos, o le damos al botón derecho > Descargar.

Acceso SSH con Putty, sin claves y sin errores

6.- Renombramos el fichero «id_rsa» a «llave-original.ppk» (o cualquier otro nombre a tu gusto)

7.- Abrimos PuttyGen.exe y cargamos el fichero que hemos descargado, con el botón «Load«:

Acceso SSH con Putty, sin claves y sin errores

Vamos a la ruta donde está el fichero «llave-original.ppk» y lo cargamos. Puttygen nos mostrará un mensaje confirmándolo:

Acceso SSH con Putty, sin claves y sin errores

8.- Ahora la clave ssh-rsa se ha convertido a algo que Putty entiende perfectamente. Guardamos el nuevo fichero «convertido» pulsando en «Save private key«. Nos preguntará si estamos seguros de querer guardar una clave privada SIN frase clave, pulsamos en «Sí»:

Acceso SSH con Putty, sin claves y sin errores

9.- Seleccionamos una ruta donde almacenar nuestra nueva clave privada, con un nombre tipo «clave-privada-ssh.ppk» (o el nombre que más rabia te de).

10.- Ahora en Putty, guardaremos una sesión con todos los parámetros necesarios para poder iniciar sesión en nuestro servidor. En la ventana «Session» ponemos la IP de nuestro servidor en Host, y escribimos un nombre de sesión que lo identifique. Clic en «Save«:

Acceso SSH con Putty, sin claves y sin errores

11.- En la sección «Connection > Data«, introducimos nuestro nombre de usuario SSH:

Acceso SSH con Putty, sin claves y sin errores

12.- En la sección «Connection > SSH > Auth«, cargamos la clave privada que guardamos con PuttyGen, pinchando en «Browse» y seleccionando el fichero «clave-privada-ssh.ppk»:

Acceso SSH con Putty, sin claves y sin errores

13.- Regresamos a la sección «Session» y volvemos a pulsar en «Save«, para guardar todos los nuevos parámetros de conexión asociados a nuestra sesión de conexión.

Acceso SSH con Putty, sin claves y sin errores

Si hacemos doble clic en el nombre de nuestra sesión guardada, veremos cómo Putty conecta directamente al servidor sin pedirnos autorización y sin mostrarnos el odiado mensaje de «Server refused our key«:

Acceso SSH con Putty, sin claves y sin errores

En mi caso lo utilizo para tunelar navegación a través de SSH (encriptada, por tanto) cuando me conecto desde redes ajenas (nunca te fíes de las redes ajenas), haciendo que mi portátil se conecte automáticamente gracias a MyEnTunnel, pero eso ya es asunto para otro manual.

Si te ha sido de utilidad y te apetece, ⬆️ invítame a una caña como agradecimiento 😊

1 comentario en “Acceso SSH con Putty, sin claves y sin errores”

  1. Hola me llamo Yauma Cabal y me ha gustado mucho tu artículo y el espíritu y la pasión que transmites hacia la tecnología. Seguire leyendo tus publicaciones ya que me resultan muy interesantes. Para un Yauma como yo al que le apasiona la tecnología eres una fuente muy valiosa de conocimientos. Se despide Yauma.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Rafa Merino Ir arriba