
Generé dos claves en PuTTY: pública y privada. Usando este software en Windows puedo conectarme al servidor como de costumbre.
Luego intenté copiar esos archivos en mi máquina Ubuntu (21.04) e inicié sesión cargando la clave privada (abro PuTTY, escribo user@hostname
y luego cargué la clave privada en SSH>Auth), pero no puedo conectarme y el servidor como este error dice:
Unable to load key file '~/private_key.ppk' (PuTTY key format too new).
Y aparece una ventana emergente que dice:
No supported authentication methods available (server sent: publickey)
Entonces, como sugiere el primer error, después de convertir la clave privada al formato PEM de openssh a través de PuTTYgen y luego cargar ese archivo en SSH/Auth, el mensaje "No compatible" permanece antes:
Unable to use key file '~/private_key_openssh' (OpenSSH SSH-2 private key (old PEM format) ).
¿Hay alguna forma de utilizar estas claves en Ubuntu? ¿Quizás a través de openssh?
Alguna información que te será útil:
- Nueva versión instalada de Ubuntu
- Masilla 0,74
La salida al intentar conssh -i ~/.ssh/private_key.ppk user@hostname
Cargar clave "~/.ssh/private_key.ppk": formato no válido usuario@nombredehost: Permiso denegado (clave pública).
Respuesta1
Las respuestas/comentarios de Adonis y Thomas son básicamente correctos, pero carecen de algunos detalles que necesitaba para que esto funcione en la práctica. Como no tengo suficiente reputación para comentar, agregaré los detalles a través de esta respuesta.
Exporte el PPK de PuTTY al formato OpenSSH.
Para hacer esto, abra PuttyGen, cargue la clave privada y luego vaya al menú "Conversiones" y elija "Exportar clave OpenSSH".
Usando la clave OpenSSH en Ubuntu (o derivados)
Si lo está usando para SSH directamente, puede usarlo como mencionó Adonis. Pero ¿qué pasa si lo necesita indirectamente, por ejemplo para usarlo con sistemas de control de fuente?
Cópielo a su carpeta ~/.ssh en Linux. Es posible que necesites crear esta carpeta si no has usado SSH en tu máquina Linux antes. Cuando crea el directorio .ssh, debe hacerlo chmod 0700 ~/.ssh
para que la herramienta ssh crea que el directorio es realmente privado para usted.
Si copió el archivo de clave de Windows, ahora abra una terminal en la carpeta ~/.ssh y ejecute chmod 400 [private key file name]
. Esto es necesario porque los permisos predeterminados (cuando se copian desde Windows) serán 770; la utilidad SSH le dirá que es demasiado permisivo y que ignorará la clave. Lamentablemente, no le indica directamente cómo solucionar los problemas, pero 400 permisos, que significa "legible para mí, no disponible para nadie más", corregirán el problema.
Ahora, en una terminal, ejecuta eval $(ssh-agent)
. Esto abre su agente SSH local y le permite agregar claves que pueden ser recogidas por otros programas, como el control de fuente.
Finalmente, corre ssh-add ~/.ssh/[private file key name]
. Siempre que recuerde establecer permisos, debería funcionar y debería poder usar git/hg/etc. con su clave SSH.
Respuesta2
¡Conexión lograda!
Como sugirió Thomas Ward, cargar el archivo de clave privada en PuTTYgen en Windows y copiar la clave pública en el authorized-keys
archivo funcionó como primer paso.
Además, exportar el archivo de clave privada como formato openssh, la primera opción, al archivo privado_OpenSSH y luego moverlo al directorio ~/.ssh para cambiar los permisos con:
chmod 400 private_OpenSSH
Finalmente me permitió conectarme con:
ssh -i ~/private_OpenSSH user@hostname