git - puttygen - ssh-keygen windows
Cómo convertir los pares de claves SSH generados utilizando PuTTYgen(Windows) en pares de claves utilizados por ssh-agent y Keychain(Linux) (8)
He generado pares de claves utilizando PuTTYgen y he iniciado sesión utilizando Pageant, por lo que debo ingresar mi contraseña una sola vez cuando mi sistema arranca.
¿Cómo logro esto en Linux? He oído hablar de keychain
pero escucho que usa un formato de par de claves diferente. No quiero cambiar mis claves de Windows y sería bueno si pudiera conectarme sin problemas de la misma manera tanto en Windows como en Linux.
Alternativamente, si desea capturar las claves públicas y privadas de un archivo de claves formadas por PuTTY, puede usar puttygen
en sistemas * nix. Para la mayoría de los sistemas basados en apt, puttygen
es parte del paquete putty-tools
.
Salida de 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
Creo que lo que TCSgrad estaba tratando de preguntar (hace unos años) era cómo hacer que Linux se comporte como lo hace su máquina con Windows. Es decir, hay un agente (concurso) que contiene una copia desencriptada de una clave privada, por lo que la frase de contraseña solo se debe ingresar una vez. Luego, el cliente ssh, putty, puede iniciar sesión en las máquinas donde su clave pública aparece como "autorizada" sin una solicitud de contraseña.
Lo análogo para esto es que Linux, actuando como un cliente ssh , tiene un agente que tiene una clave privada descifrada, de modo que cuando TCSgrad escribe "ssh host", el comando ssh obtendrá su clave privada y se irá sin que se le solicite una contraseña. El anfitrión, por supuesto, tendría que mantener la clave pública en ~ / .ssh / authorized_keys.
El análogo de Linux a este escenario se logra usando ssh-agent (el análogo del concurso) y ssh-add (el análogo a la adición de una clave privada al concurso).
El método que funcionó para mí fue usar: $ ssh-agent $ SHELL. Ese $ SHELL era el truco de magia que necesitaba para hacer que el agente corriera y siguiera corriendo. Encontré eso en algún lugar de la red y terminó unas horas después de golpearme la cabeza contra la pared.
Ahora tenemos el análogo de la ejecución del concurso, un agente sin teclas cargadas.
Al escribir $ ssh-add por sí mismo, se agregarán (de forma predeterminada) las claves privadas enumeradas en los archivos de identidad predeterminados en ~ / .ssh.
Un artículo web con muchos más detalles se puede encontrar here
Hace poco tuve este problema cuando me mudé de Putty para Linux a Remmina para Linux. Así que tengo una gran cantidad de archivos PPK para Putty en mi directorio .putty
, ya que lo uso desde hace 8 años. Para esto usé un comando simple para bash shell para 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 punto, hizo el trabajo para todos los archivos que tenía la masilla. Si encuentra una clave con una contraseña, se detendrá y solicitará primero la contraseña para esa clave y luego continuará.
Las versiones más recientes de PuTTYgen (la mía es 0.64) pueden mostrar la clave pública de OpenSSH que se va a pegar en el sistema Linux en el archivo .ssh/authorized_keys
, como se muestra en la siguiente imagen:
Probablemente sea más fácil crear sus claves en Linux y usar PuTTYgen para convertir las claves al formato PuTTY.
Si todo lo que tiene es una clave pública de un usuario en formato estilo PuTTY, puede convertirla al formato estándar openssh de la siguiente manera:
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 articulo
Sigo olvidando esto, así que lo escribiré aquí. No geeks, solo sigue caminando.
La forma más común de crear una clave en Windows es usar Putty / Puttygen. Puttygen proporciona una utilidad limpia para convertir una clave privada de Linux al formato Putty. Sin embargo, lo que no se aborda es que al guardar la clave pública con puttygen no funcionará en un servidor Linux. Windows coloca algunos datos en diferentes áreas y agrega saltos de línea.
La solución: cuando llegue a la pantalla de clave pública para crear su par de claves en puttygen, copie la clave pública y péguela en un archivo de texto con la extensión .pub. Te ahorrarás horas de administrador de la frustración leyendo publicaciones como esta.
SIN EMBARGO, sysadmins, invariablemente obtiene el archivo de claves no deseadas que no muestra ningún mensaje de error en el registro de autenticación, excepto que no se ha encontrado ninguna clave, intente la contraseña; a pesar de que las claves de todos los demás funcionan bien, y ha enviado esta clave al usuario 15 veces.
ssh-keygen -i -f keyfile.pub > newkeyfile.pub
Debe convertir una clave pública puttygen existente al formato OpenSSH.
puttygen
admite la exportación de su clave privada a un formato compatible con OpenSSH. Luego puede usar las herramientas OpenSSH para recrear la clave pública.
- Open PuttyGen
- Haga clic en cargar
- Carga tu clave privada
- Vaya a
Conversions->Export OpenSSH
y exporte su clave privada - Copie su clave privada a
~/.ssh/id_dsa
(oid_rsa
). Cree 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
Convierta 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
sudo apt-get install putty
Esto instalará automáticamente la herramienta puttygen.
Ahora para convertir el archivo PPK que se usará con el comando SSH, ejecute lo siguiente en el terminal
puttygen mykey.ppk -O private-openssh -o my-openssh-key
Entonces, puede conectarse a través de SSH con:
ssh -v [email protected] -i my-openssh-key
http://www.graphicmist.in/use-your-putty-ppk-file-to-ssh-remote-server-in-ubuntu/#comment-28603