Cómo configurar las llaves SSH: Siempre recibes “Server refused our key”

Hola a todosunixEloy Mier

Si eres de los que estas intentando configurar las llaves SSH desde Windows con putty y siempre obtienes el mensaje “Server refused our key”, continua leyendo, parece que tengo la solución a tu problema, pero primero repasemos el proceso que probablemente estamos realizando y luego veamos una posible solución.

Las acciones que estarás realizando serán alguna/ninguna/todas de las siguientes:

  • Abriendo puttygen.exe
  • Generar una llave después de mover un ratito tu ratón
  • Introducir una clave de paso fuerte
  • Salvar la clave púbica en un fichero similar a
    pubkey
  • Salvar la clave privada en un fichero similar a
    privatekey.ppk
  • Mover la clave pública al servidor
  • Convertir el formato de la llave de putty a openssh con una orden similar a
    ssh-keygen -if pubkey > pubkey_openssh_format
  • Cambiar algunos permisos
    chmod 700 .ssh
  • Añadir la clave pública al fichero de autorizaciones “authorized_keys” con una orden similar a
    cat pubkey >> .ssh/authorized_keys
  • Volver a cambiar algunos permisos
    chmod 600 authorized_keys
  • Cambier en putty la configuración de autenticación “connection > SSH > auth” para que ahora use
    privatekey.ppk
  • Intentar conectar y obtenemos …..”Server refused our key”

Bien – por lo que he leido, esto debiera funcionar sin mas problemas, pero te ha funcionado, ¿a que no?

El problema nada tiene que ver con la forma en la que hemos seguido el procedimiento.La solución al problema es generar la clave en el servidor (unix, linux, bsd etc.) en vez de en el cliente (windows).

Hagamos lo siguiente:

  • Conexión ssh al servidor usando nombre de usuario y contraseña
  • Verifiquemos los permisos del directorio ~/.ssh para que sean 700
    chmod 700 .ssh
  • Verifiquemos los permisos del fichero ~/.ssh/authorized_keys y aseguremos 600
    chmod 600 authorized_keys
  • Generemos las claves en el servidor con la orden
    ssh-keygen -t dsa

    (o rsa lo que convenga a cada uno)

  • Ok a los nombres de ficheros que la aplicación nos ofrece
  • Introduzcamos una frase de paso fuerte
  • Añadamos la clave pública al fichero de autorizaciones authorized_keys usando
    cat id_dsa.pub >> .ssh/authorized_keys
  • Copiar la clave privada (id_dsa) a la máquina cliente ssh, en este caso nuestro querido Windows  (se puede usar winscp o sftp o cualquier otra herramienta que usemos habitualmente)
  • Ahora abrimos puttygen.exe
  • En el menú de actions seleccionamos “load” y le damos el fichero id_dsa, que recordemos es la clave privada generada en el server ssh
  • Introducimos la frase de paso que habíamos dado en el server a la hora de la generación de la llave. Puttygen convertirá la llave a lo que quiera que sea que putty entiende, jajaja
  • Salvar el fichero donde nos de la gana, por ejemplo
    pivatekey.ppk
  • Ahora cambiamos la forma de autenticación en configuración “connection > SSH > auth” para usar nuestra nueva clave privada
    privatekey.ppk
  • Ahora intentemos conectar al server
  • Introduzcamos la frase de paso cuando se nos pida
  • Felicidades, ahora si que estás conectado al server usando tu nueva clave (o eso espero, xD)

Ahora lo único que te queda por hacer es investigar un poco para no tener que meter la frase cada vez que quieras conectar. Esto se hace configurando puttyagent, pero este curro te lo dejo a tí.

Saludos y hasta la próxima.

You must be logged in to post a comment.