Cómo convertir una clave .ppk a OpenSSH, y al revés

Ejecuta puttygen key.ppk -O private-openssh -o id_ed25519. Esto escribe una clave privada OpenSSH que ssh puede usar, y conserva la misma frase de contraseña. Para ir en sentido contrario, ejecuta puttygen id_ed25519 -O private -o key.ppk. En Debian y Ubuntu la herramienta está en el paquete putty-tools.

Actualizada el . Todos los comandos se ejecutaron con la versión 0.83 de la herramienta PPK en Debian 13, con claves ed25519 y RSA de 3072 bits, con y sin frase de contraseña.

Por qué hay que convertir

OpenSSH no puede leer el formato PPK. Si le das directamente un archivo .ppk, falla. En nuestro sistema de pruebas el mensaje fue este, y otras versiones pueden mostrar otro, como el de invalid format:

Load key "key.ppk": error in libcrypto

La conversión cambia solo el formato del archivo. La clave sigue siendo la misma, así que los servidores que ya la aceptan siguen aceptándola.

Instala la herramienta de conversión

# Debian and Ubuntu
sudo apt install putty-tools

# macOS with Homebrew
brew install putty

De .ppk a OpenSSH

puttygen key.ppk -O private-openssh -o ~/.ssh/id_ed25519
puttygen key.ppk -O public-openssh -o ~/.ssh/id_ed25519.pub

Si la clave tiene una frase de contraseña, puttygen la pide. El archivo nuevo conserva la misma frase de contraseña. Después comprueba el resultado:

ssh-keygen -lf ~/.ssh/id_ed25519.pub
puttygen key.ppk -O fingerprint

Ambos muestran la misma huella SHA256:. El archivo de salida se creó con modo 600 en nuestra prueba, que es lo que quiere ssh. Si ssh se queja igualmente, consulta unprotected private key file.

Para obtener solo la línea de la clave pública a partir de una clave OpenSSH, mira cómo sacar la clave pública de la privada.

Claves RSA: formato antiguo o nuevo

Para una clave RSA, private-openssh escribe el formato antiguo, con BEGIN RSA PRIVATE KEY como primera línea. Para ed25519 siempre escribe el nuevo. Si quieres el formato más reciente también para RSA, usa:

puttygen key.ppk -O private-openssh-new -o ~/.ssh/id_rsa

OpenSSH actual lee ambos. Usa el antiguo solo para una herramienta que no pueda leer BEGIN OPENSSH PRIVATE KEY.

De OpenSSH a .ppk

puttygen ~/.ssh/id_ed25519 -O private -o key.ppk

Comprueba la primera línea del archivo nuevo:

PuTTY-User-Key-File-3: ssh-ed25519

PPK versión 3 y herramientas antiguas

Ese 3 es la versión del formato. Es la predeterminada desde 2021. Protege las frases de contraseña con Argon2, y las herramientas anteriores a 2021 que aceptan archivos PPK no pueden leerla. Para ellas, escribe la versión 2:

puttygen ~/.ssh/id_ed25519 -O private -o key.ppk --ppk-param version=2

La primera línea dirá entonces PuTTY-User-Key-File-2. La versión 2 resiste peor el adivinado de frases de contraseña, así que úsala solo cuando no haya más remedio, y actualiza la herramienta en cuanto puedas.

Uso en scripts con frase de contraseña

Estas opciones leen la frase de contraseña de un archivo en lugar de preguntarla. Pon el archivo en un lugar privado y bórralo después:

puttygen key.ppk --old-passphrase pass.txt -O private-openssh -o id_ed25519

Añade --new-passphrase newpass.txt para poner una distinta. Para quitar la frase de contraseña, usa un archivo vacío o /dev/null. Hazlo solo si de verdad quieres dejar la clave sin protección.

Con la ventana del generador de claves en Windows

  1. Haz clic en Load y abre el archivo .ppk, o usa Conversions y luego Import para una clave OpenSSH.
  2. Para escribir OpenSSH, usa Conversions y luego Export OpenSSH key.
  3. Para escribir PPK, haz clic en Save private key.

Preguntas

¿Puede OpenSSH usar un archivo .ppk?

No. ssh no lee el formato PPK. Convierte antes la clave como se muestra arriba y usa el archivo nuevo.

¿Convertir un .ppk cambia la clave?

No. Solo cambia el formato del archivo, así que los servidores que aceptan la clave la siguen aceptando. La huella es la misma antes y después.

¿Puede ssh-keygen convertir una clave privada .ppk?

No. ssh-keygen no lee claves privadas PPK. Usa el conversor que se muestra arriba.

Fuentes

Más en Claves y acceso

Todas las guías