Por motivos laborales me he visto obligado a utilizar Microsoft Windows Vista como sistema operativo. El caso es que al generar un par de claves RSA e intentar conectarme a un servidor corriendo OpenSSH recibo "siempre" el siguiente error: “Server refused our key”
La solución es muy sencilla. Una vez hemos copiado la clave pública al servidor en cuestión usamos "ssh-keygen" para limpiarla y "convertirla" a "formato openssh" con el siguiente comando:
apermuy@vpn:~$ ssh-keygen -if id_rsa_vbox_sdk.pub > pub_vbox
El siguiente paso es añadir la "llave limpia" al fichero %h/authorized_keys . Tan sencillo como:
cat pub_vbox >> .ssh/authorized_keys
El problema por el cual el servidor rechaza la llave es el formato de la misma. Resumiendo. El "formato" de la llave que genera "putty-gen" es distinto a que espera el servidor(openssh).Veamos un ejemplo:
Contenido de la llave en formato "putty-gen":
El mismo contenido después de convertirla a formato ssh, tal y como se indica en este post:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAvkO+GR3NqkGdPxn2MesgSiJBoZ7zzIsULb/JzdP48z6LKAT5YbKs0sRdoUv2iK9pgrJXn18y62yVFAf0BPkgJOS6u7sGkwIHLnyhFI0Pb+NEpXALtCYIUKv6Vh8NfaAcy7M4icM8wRMZ14CAe3SCmoby/MZbqfo9GeUXuBAYxDH---------------------VylMVhxRnuUnMjKkjzSEYNZvc0/dq6omuEGw2VbyTjLcYel5kmmvM8OFXFnqg9Kr0ITjZBxvNk56S9jfOqs9qgt9TMFFHUgHGaYpS+S42JG7m5k7HSp57ZrRaP/9l4BqOQLnwTJLFjOCV272uQzbbUQ==
En resumen: el formato "openssh" sólo espera una línea con el contenido de la llave, comenzando la cadena(p.e) por "ssh-rsa".
Saludos!