He generado pares de claves con PuTTYgen y he iniciado la sesión con Pageant, de modo que tengo que introducir mi frase de paso sólo una vez cuando se inicia el sistema.
¿Cómo puedo lograr 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 si pudiera conectarme sin problemas de la misma manera tanto en Windows como en Linux.
puttygen
permite exportar tu clave privada a un formato compatible con OpenSSH. A continuación, puedes utilizar las herramientas de OpenSSH para recrear la clave pública.
Abrir PuttyGen
Haga clic en Cargar
Cargue su clave privada
Vaya a Conversiones->Exportar OpenSSH
y exporte su clave privada
Copie su clave privada en ~/.ssh/id_dsa
(o id_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
Si todo lo que tienes es una clave pública de un usuario en formato tipo PuTTY, puedes convertirla al formato estándar de openssh así:
ssh-keygen -i -f keyfile.pub > newkeyfile.pub
Sigo olvidando esto así que lo voy a escribir aquí. Los que no son geek, sólo sigan caminando.
La forma más común de hacer una clave en Windows es usando Putty/Puttygen. Puttygen proporciona una utilidad aseada para convertir una clave privada de linux a formato Putty. Sin embargo, lo que no se aborda es que cuando se guarda la clave pública usando Puttygen no funcionará en un servidor linux. Windows pone algunos datos en diferentes áreas y añade saltos de línea. ; La solución: Al llegar a la pantalla de la clave pública en la creación de su par de claves en puttygen, copie la clave pública y péguela en un archivo de texto archivo con la extensión .pub. Usted le ahorrará horas sysadmin de frustración leyendo posts como este. ; SIN EMBARGO, sysadmins, invariablemente se obtiene el archivo de claves wonky que arroja ningún mensaje de error en el registro de autenticación excepto, no se encontró la clave, tratando de aunque las claves de todos los demás funcionen bien, y usted' ha enviado esta clave de vuelta al usuario 15 veces.
ssh-keygen -i -f keyfile.pub > newkeyfile.pub
Debería convertir una clave pública existente de Puttygen al formato de OpenSSH.
Las versiones más recientes de [PuTTYgen][1] (la mía es 0.64) son capaces de mostrar la clave pública de OpenSSH para ser pegada en el sistema linux en el archivo `.ssh/authorized_keys', como se muestra en la siguiente imagen:
![introduzca la descripción de la imagen aquí][2]
[1]: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html [2]: http://i.stack.imgur.com/RB3Qe.png
Alternativamente, si quieres coger las claves públicas y privadas de un archivo de claves con formato PuTTY, puedes usar "puttygen" en los sistemas *nix. Para la mayoría de los sistemas basados en aptos, "puttygen" es parte del paquete "putty-tools".
Sacar una clave privada de un archivo de claves con formato PuTTY:
$ puttygen keyfile.pem -O private-openssh -o avdev.pvk
Para la llave pública:
$ puttygen keyfile.pem -L
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 la terminal
puttygen mykey.ppk -O private-openssh -o my-openssh-key
Entonces, puedes conectarte 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
Recientemente tuve este problema cuando me estaba moviendo de Putty para Linux a Remmina para Linux.
Así que tengo un montón de archivos PPK para Putty en mi directorio .putty
ya que he estado usándolo durante 8 años.
Para esto usé un simple comando "for" para que el shell bash haga 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 para todos los archivos que tenía la masilla. Si encuentra una clave con una contraseña se detendrá y pedirá la contraseña de esa clave primero y luego continuará.
Probablemente sea más fácil crear tus claves en linux y utilizar PuTTYgen para convertir las claves al formato PuTTY.
Creo que lo que TCSgrad intentaba preguntar (hace unos años) era cómo hacer que Linux se comportara como lo hace su máquina de Windows. Es decir, hay un agente (concurso) que tiene una copia desencriptada de una clave privada para que la frase de contraseña sólo tenga que ser puesta una vez. Entonces, el cliente ssh, masilla, puede entrar en las máquinas donde su clave pública aparece como "autorizado" sin que se le pida la contraseña.
El análogo para esto es que Linux, actuando como un cliente ssh, tiene un agente con una clave privada desencriptada para que cuando TCSgrad teclee "ssh host" ...el comando ssh obtendrá su clave privada y se irá sin que se le pida una contraseña. El anfitrión, por supuesto, tendría que tener 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 de agregar una clave privada al concurso).
El método que me funcionó fue el de usar $ ssh-agent $SHELL Ese $SHELL era el truco de magia que necesitaba para que el agente corriera y siguiera corriendo. Lo encontré en algún lugar de la red y terminó con unas horas de golpearme la cabeza contra la pared.
Ahora tenemos el análogo del concurso corriendo, un agente sin llaves cargadas.
Escribiendo $ ssh-add por sí mismo añadirá (por defecto) las claves privadas listadas en los archivos de identidad por defecto en ~/.ssh .
Un artículo web con muchos más detalles se puede encontrar [aquí][1]