Pregunta ¿Cómo convertir la clave .ppk a la clave OpenSSH en Linux?


Sé que es posible convertir .ppk en Puttygen en Windows, pero ¿cómo hacerlo en Linux? Es posible ?


157


origen




Respuestas:


Hazlo con masilla.

  • Linux: con su administrador de paquetes, instale PuTTY (o las herramientas PuTTY más mínimas):

    • Ubuntu sudo apt-get install putty-tools
    • Similar a Debian apt-get install putty-tools
    • RPM basado yum install putty
    • Gentoo emerge putty
    • Archlinux sudo pacman -S putty
    • etc.
  • OS X: Instalar Homebrew, entonces corre brew install putty

Coloque sus llaves en algún directorio, p. tu carpeta de inicio Ahora convierta las claves PPK en pares de claves SSH: búsqueda en caché

Para generar el privado llave:

cd ~
puttygen id_dsa.ppk -O private-openssh -o id_dsa

y generar el público llave:

puttygen id_dsa.ppk -O public-openssh -o id_dsa.pub

Mueva estas teclas a ~/.ssh y asegúrese de que los permisos estén configurados como privados para su clave privada:

mkdir -p ~/.ssh
mv -i ~/id_dsa* ~/.ssh
chmod 600 ~/.ssh/id_dsa
chmod 666 ~/.ssh/id_dsa.pub

Si ya has intentado realizar un 'git clone'operación que podría necesitar hacer esto también

chmod 666 ~/.ssh/known_hosts

231



hola, ya tengo un .pub, entonces es necesario crear una clave pública de nuevo - Amit Bera
Si vino aquí buscando cómo hacerlo en Windows, ejecute "puttygen yourkey.ppk" y luego, en el menú Conversiones, elija "Exportar clave OpenSSH" para obtener la clave privada. - Ryan Shillington
la solución de @jous es mucho más agradable ya que no necesita la clave privada para convertir una clave pública + no necesita instalar masilla - Tobi
Tuve que agregar esta clave a mi ./ssh/config archivo Host mysite.com Hostname mysite.com IdentityFile ~/.ssh/id_dsa IdentitiesOnly yes - vladkras
Algunos formatos de curva elíptica (ECDS, etc.) solo están disponibles en las herramientas de masilla beta. - DanFromGermany


ssh-keygen -i -f id_dsa_1024_a.pub > id_dsa_1024_a_openssh.pub
  • -i la marca es importada de un formato que no sea openssh
  • -f flag significa leer del archivo de entrada

Fuente: a entrada en el blog en burnz.wordpress.com


34



Los archivos .ppk son los pares de claves completos, no creo que el comando anterior o la publicación del blog se apliquen a eso. - Peter Becker
Creo que quise decir que funciona si usas el botón "Guardar clave pública" de Puttygen. ssh-keygen no entienden los archivos .ppk verdaderos porque carecen de los marcadores '---- BEGIN SSH2 PUBLIC KEY ----'. Sin embargo, puede encontrar la clave pública en el archivo .ppk entre las líneas "Public-Lines: .." y "Private-Lines: ..". - jous
Esto funcionó para mí con un archivo de clave pública: puttygen parece requerir una clave privada. parece que todo lo que hizo fue reorganizar la parte de la base 64 en una sola línea - Jasen
Esto no parece cubrir las claves privadas, por lo que me gustaría hacer la conversión, ya tengo una clave pública guardada en alguna parte ... - Gert van den Berg


Obtener la clave privada:

abra el archivo .ppk en puttygen:

puttygen ~/.ssh/id_dsa.ppk

exportar como openssh:

Conversiones → Exportar clave OpenSSH

Obtener la clave pública:

abrir como antes el llave privada con Puttygen, la clave pública está debajo clave pública para pegar en el archivo authorized_keys de OpenSSH


5





Preparé un contenedor Docker para simplificar la vida:

docker run --rm \
           --volume=/path/to/file.ppk:/tmp/id_dsa.ppk \
           --volume=/path/to/output:/tmp/out/ \
           czerasz/putty-tools

Dónde:

  • /path/to/file.ppk - ruta local a su archivo ppk
  • /path/to/output - ruta local hacia donde debe colocarse la clave pública y privada

3



estupendo. thx para la imagen! sin embargo mientras tanto es --volume=/path/to/file.ppk:/tmp/id.ppk y no id_dsa.ppk - pHiL