Este tutorial titulado: SSH: Convierte OpenSSH a SSH2 y viceversa parece ofrecerte lo que estás buscando.
Convierta la clave OpenSSH en clave SSH2
Ejecute la versión OpenSSH de ssh-keygen
en su clave pública OpenSSH para convertirla al formato que necesita SSH2 en la máquina remota. Esto debe hacerse en el sistema que ejecuta OpenSSH.
$ ssh-keygen -e -f ~/.ssh/id_dsa.pub > ~/.ssh/id_dsa_ssh2.pub
Convertir clave SSH2 a clave OpenSSH
Ejecute la versión OpenSSH de ssh-keygen
en su clave pública ssh2 para convertirla al formato que necesita OpenSSH. Esto debe hacerse en el sistema que ejecuta OpenSSH.
$ ssh-keygen -i -f ~/.ssh/id_dsa_1024_a.pub > ~/.ssh/id_dsa_1024_a_openssh.pub
El tutorial continúa para mostrar cómo generar los distintos tipos de claves y cómo exportarlas a otros formatos.
¿Usar esto para claves privadas y públicas?
Según la página del manual, la respuesta sería un sí. Al mirar la página del manual, ssh-keygen
se indica lo siguiente para el -e
cambio:
-e This option will read a private or public OpenSSH key file and print
the key in RFC 4716 SSH Public Key File Format to stdout. This option
allows exporting keys for use by several commercial SSH implementations.
Pero en la práctica parecería que ssh-keygen
no puede convertir claves privadas, solo públicas.
Por ejemplo:
# Make a new RSA key-pair
$ ssh-keygen -t rsa -f newkey
# attempt to extract the private key
$ ssh-keygen -e -f newkey > newkey_e
# attempt to extract the public key
$ ssh-keygen -e -f newkey.pub > newkey.pub_e
# Notice the supposed extracted private key (newkey_e) and the corresponding extracted public key (newkey.pub_e) have identical `md5sum`'s.
$ for i in *;do md5sum $i;done
d1bd1c12c4a2b9fee4b5f8f83150cf1a newkey
8b67a7be646918afc7a041119e863be5 newkey_e
13947789d5dcc5322768bd8a2d3f562a newkey.pub
8b67a7be646918afc7a041119e863be5 newkey.pub_e
Mirando las claves extraídas resultantes confirma esto:
$ grep BEGIN newkey_e newkey.pub_e
newkey_e:---- BEGIN SSH2 PUBLIC KEY ----
newkey.pub_e:---- BEGIN SSH2 PUBLIC KEY ----
Buscando en Google un poco, me encontré con este anuncio de un artículo titulado: ¿Cómo convertir archivos de clave privada OpenSSH a SSH ? El sitio parecía estar arriba y abajo, pero al buscar en la memoria caché de Google esta página , encontré la siguiente propaganda:
¿Cómo convertir archivos de clave privada OpenSSH a archivos de clave privada SSH.com?
El programa ssh-keygen no puede hacerlo, aunque la mayoría de las páginas man dicen que sí. Lo desalientan para que use múltiples claves públicas. El único problema es que RCF no le permitirá registrar más de una clave pública.
El artículo continúa cubriendo un método para convertir una clave privada openssh en una clave privada ssh.com mediante el uso de la puttygen
herramienta PuTTY . NOTA: puttygen
se puede ejecutar desde Windows y Linux.
Abra 'puttygen' y genere un par de claves públicas / privadas rsa de 2048 bits. Asegúrese de agregar una contraseña después de que se genera. Guarde la clave pública como "puttystyle.pub" y guarde la clave privada como "puttystyle". El programa de masilla y los programas SSH.com comparten un formato de clave pública común, pero el programa de masilla y OpenSSH tienen diferentes formatos de clave pública. Vamos a volver a esto más adelante. Debería poder cargar ambas claves de masilla en el programa de masilla. Sin embargo, los formatos de clave privada para putty y SSH.com no son los mismos, por lo que deberá crear un archivo convertido. Vaya al menú de conversiones y exporte una clave SSH.com. Guárdelo como "sshstyle". Ahora regrese al menú de conversiones y exporte una tecla openssh. Guárdelo como "openssh". Estos nombres son arbitrarios y puedes elegir el tuyo. Tendrá que cambiar los nombres para la instalación en una máquina OpenSSH, más adelante. Vea abajo.
Dado lo anterior, resolví el siguiente uso puttygen
, utilizando nuestro par de claves openssh privado / público previamente generado:
# generate ssh.com private key from private openssh key
$ puttygen newkey -O private-sshcom -o newkey.puttygen-sshcom
# generate ssh.com public key from private openssh key
$ puttygen newkey -O public -o newkey.pub_puttygen-sshcom
# generate openssh public key from private openssh key (for confirmation)
$ puttygen newkey -O public-openssh -o newkey.pub_puttygen-openssh
Los comentarios son diferentes, por lo que no puede simplemente comparar los archivos resultantes, por lo que si observa las primeras líneas de las teclas, es un buen indicador de que los comandos anteriores fueron exitosos.
Comparación de claves públicas ssh.com:
$ tail -n +3 newkey.pub_e | head -1 | cut -c 1-60
AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wb
$ tail -n +3 newkey.pub_puttygen-sshcom | head -1 | cut -c 1-60
AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wb
Comparación de las claves públicas de openssh:
$ cut -c 1-100 newkey.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY
$ cut -c 1-100 newkey.pub_puttygen-openssh
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY