Cómo convertir pares de claves SSH generados con PuTTYgen (Windows) en pares de claves utilizados por ssh-agent y Keychain (Linux)
Pregunta
He generado pares de claves usando PuTTYgen y he iniciado sesión usando Pageant, por lo que tengo que ingresar mi contraseña solo una vez cuando arranca mi sistema.
¿Cómo logro esto en Linux?he oído hablar de keychain
pero he oído que utiliza un formato de par de claves diferente: no quiero cambiar mis claves de Windows y sería bueno poder conectarme sin problemas de la misma manera tanto en Windows como en Linux.
Solución
puttygen
soporta exportar la clave privada a un formato compatible con OpenSSH. A continuación, puede utilizar las herramientas OpenSSH para recrear la clave pública.
- Abrir PuTTYgen
- Haga clic en Cargar
- Carga tu clave privada
- Ir a
Conversions->Export OpenSSH
y exportar la clave privada - Copia de su clave privada para
~/.ssh/id_dsa
(oid_rsa
). -
Crea la versión RFC 4716 de la clave pública utilizando
ssh-keygen
ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub
-
Convertir la versión RFC 4716 de la clave pública al formato OpenSSH:
ssh-keygen -i -f ~/.ssh/id_dsa_com.pub > ~/.ssh/id_dsa.pub
Otros consejos
Si todo lo que tienes es una clave pública de un usuario en el formato de estilo masilla, puede convertir a formato openssh estándar de este modo:
ssh-keygen -i -f keyfile.pub > newkeyfile.pub
Referencias
- Fuente:
http://www.treslervania.com/node/408 - Espejo: https: // web. archive.org/web/20120414040727/http://www.treslervania.com/node/408 .
Copia del artículo
Siempre me olvido de esto, así que voy a escribir aquí. No-geeks, simplemente seguir caminando.
La forma más común de hacer una tecla en Windows está utilizando masilla / Puttygen. Puttygen proporciona una utilidad limpia para convertir una clave privada para Linux Formato de masilla. Sin embargo, lo que no se aborda es que cuando se guarda el clave pública utilizando puttygen no va a funcionar en un servidor Linux. ventanas pone algunos datos en diferentes áreas y añade saltos de línea.
La solución: Al llegar a la pantalla de clave pública en la creación de su par de claves en puttygen, copiar la clave pública y pegarlo en un texto presentar ante la .pub extensión. Se le ahorrará horas de administrador de sistemas la frustración de leer mensajes como este.
Sin embargo, los administradores de sistemas, que siempre consiguen el archivo de claves poco firme que lanza ningún mensaje de error en el registro de autenticación excepción, ninguna tecla encontrado, tratando contraseña; a pesar de todos los demás teclas están trabajando bien, y que ha enviado esta clave al usuario 15 veces.
ssh-keygen -i -f keyfile.pub > newkeyfile.pub
En caso de convertir una clave pública puttygen existente al formato OpenSSH.
Las nuevas versiones de PuTTYgen (mina es 0,64) son capaces de mostrar la clave pública OpenSSH para ser pegado en el sistema Linux en el archivo .ssh/authorized_keys
, como se muestra en la siguiente imagen:
Alternativamente, si desea obtener las claves públicas y privadas de un archivo de claves con formato PuTTY, puede usar puttygen
en sistemas *nix.Para la mayoría de los sistemas basados en apt puttygen
es parte del putty-tools
paquete.
Generar una clave privada desde un archivo de claves con formato PuTTY:
$ puttygen keyfile.pem -O private-openssh -o avdev.pvk
Para la clave pública:
$ puttygen keyfile.pem -L
sudo apt-get install putty
Esto instalará automáticamente la herramienta puttygen.
Ahora para convertir el archivo PPK para ser utilizado con el comando SSH ejecute lo siguiente en el terminal
puttygen mykey.ppk -O private-openssh -o my-openssh-key
A continuación, se puede conectar a través de SSH con:
ssh -v user@example.com -i my-openssh-key
http://www.graphicmist.in/use-your-putty-ppk-file-to-ssh-remote-server-in-ubuntu/#comment-28603
Recientemente tuve este problema, ya que se movía de masilla para Linux a Remina para Linux. Así que tengo una gran cantidad de archivos para PPK masilla en mi directorio .putty
como lo he estado usando es de 8 años. Para ello he utilizado un simple comando for
para la cáscara del golpe que hacer todos los archivos:
cd ~/.putty
for X in *.ppk; do puttygen $X -L > ~/.ssh/$(echo $X | sed 's,./,,' | sed 's/.ppk//g').pub; puttygen $X -O private-openssh -o ~/.ssh/$(echo $X | sed 's,./,,' | sed 's/.ppk//g').pvk; done;
Muy rápido y al grano, hizo el trabajo de todos los archivos que tenía masilla. Si se encuentra una llave con una contraseña se detendrá y pedir la contraseña para esa tecla primero y luego continuar.
Es probable que sea más fácil para crear sus llaves bajo Linux y utilizar PuTTYgen para convertir las claves de formato PuTTY.
Creo que lo TCSgrad estaba tratando de preguntar (hace unos años) era cómo hacer que se comporte de Linux como su máquina de Windows lo hace. Es decir, no es un agente (concurso) que contiene una copia descifrado de una clave privada para que la frase de paso sólo tiene que ser puesto en una vez. A continuación, el cliente ssh, masilla, puede iniciar sesión en máquinas donde su clave pública aparece como "autorizado" sin una solicitud de contraseña.
El análogo de esto es que Linux, actuando como un cliente ssh , tiene un agente de la celebración de una clave privada descifrada de modo que cuando los tipos TCSgrad "host ssh" el comando ssh obtendrá su clave privada y ir sin que se le pida una contraseña. anfitrión, por supuesto, tiene que ser la celebración de la clave pública en ~ / .ssh / authorized_keys.
El análogo de Linux para este escenario se logra usando ssh-agent (el análogo certamen) y ssh-add (el análogo a la adición de una clave privada para certamen).
El método que trabajó para mí era utilizar: $ Ssh-agent $ SHELL Esos $ SHELL fue el truco de magia que necesitaba para hacer que el agente de carrera y mantenerse en funcionamiento. He encontrado que en algún lugar en la 'red y terminó unas pocas horas de golpear mi cabeza contra la pared.
Ahora tenemos el análogo de correr desfile, un agente sin llaves cargadas.
Typing $ Ssh-add por sí mismo agregará (por defecto) las claves privadas que figuran en los archivos de identidad por defecto en ~ / .ssh.
Un artículo de la tela con muchos más detalles se puede encontrar aquí