¿Qué diferencia hay entre la tecla openssh y la masilla?

He descubierto que ssh-keygen (package "ssh") produce keys diferentes de puttygen (package "putty").

Si creo keys públicas y privadas con ssh-keygen algunos ssh-servers no aceptarán mis keys. Si creo keys con puttygen solo un server lo acepta.

¿Por qué los repositorys de Linux no proponen alguna solución común (package) para ello? Encontré otro package ssh-3.2.9.1 que crea keys que funcionan con masilla. ¿Pero por qué no hay una solución práctica en SSH?

Related of "¿Qué diferencia hay entre la tecla openssh y la masilla?"

OpenSSH es la implementación estándar de facto del protocolo SSH. Si PuTTY y OpenSSH difieren, PuTTY es el que es incompatible.

Si genera una key con OpenSSH utilizando ssh-keygen con las opciones pnetworkingeterminadas, funcionará con prácticamente todos los serveres que existen. Un server que no acepta dicha key sería antiguo, utilizando una implementación diferente de SSH, o configurado de una manera extrañamente restrictiva. Las keys de tipo no pnetworkingeterminado pueden no ser compatibles en algunos serveres, en particular, las keys ECDSA hacen que el establecimiento de la session sea ligeramente más rápido, pero solo son compatibles con las versiones recientes de OpenSSH.

PuTTY usa un formatting de file de key diferente. Viene con herramientas para convertir entre su propio formatting .ppk y el formatting de OpenSSH.

Este ssh-3.2.9.1 que ha encontrado es un producto comercial que tiene su propio formatting de key privada diferente. No hay ninguna razón para usarlo en lugar de OpenSSH, solo puede ser less compatible, requiere pago, y hay casi cero tutoriales sobre cómo usarlo allí.

La mayoría de las distribuciones de Linux tienen putty disponible para Linux. Puede instalar putty en el lado de Linux y usar puttygen para convertir los files .ppk a los files de key de estilo ssh normales (llamados files PEM, aunque no tengan un .pem en el nombre del file).

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

NOTA: También puede usar puttygen para importar files PEM estilo ssh nuevamente en putty .

El autor de PuTTY optó por la simplicidad, por lo que las keys públicas y privadas que componen la security subyacente utilizada por la authentication de la key putty / ssh 2 se almacenan en un único file .ppk propietario. Normalmente, estas keys se mantienen como 2 files separados por ssh.

En Linux, los files de key generalmente se guardan en el directory, .ssh.

Hay una buena descripción general del process de conversión aquí en esta pregunta sobre desbordamiento de stack titulada: Convertir formatting de file PEM a PPK .

El autor de Putty también discute su lógica para usar files .ppk en el manual de usuario de putty . Puede leer sobre esto aquí en la sección 8.2.12.

Ambos almacenan un "par de keys RSA para la versión 2 del protocolo SSH" y se pueden convertir indistintamente, sin embargo, con respecto a la diferencia de formatting almacenada real:

de http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/key-formats-natively.html

Las ventajas del formatting de key PuTTY son: La mitad pública de la key se almacena en text plano . El formatting de key privada de OpenSSH encripta todo el file de key , de modo que el cliente tiene que pedirle su contraseña antes de que pueda hacer algo con la key. En particular, esto significa que debe solicitar su contraseña antes de que pueda ofrecer la key pública al server para la authentication. El formatting PuTTY almacena la key pública en text sin formatting y solo encripta la mitad privada, lo que significa que puede enviar automáticamente la key pública al server y determinar si el server está dispuesto a aceptar autenticaciones con esa key, y solo solicitará una frase de contraseña si realmente lo necesita. Creo que OpenSSH leerá un file .pub para este propósito si aparece junto con el file de key privada, pero esto es una fuente de confusión tan a menudo como la conveniencia (he visto a gente replace un file de key privada y dejar un out-of- date .pub junto a él, ¡y luego se confundirá mucho con el process de authentication SSH resultante!). La key está completamente a testing de manipulaciones. Los formattings key que almacenan la key pública en text sin formatting pueden ser vulnerables a un ataque de manipulación, en el que la mitad pública de la key se modifica de tal manera que las firmas realizadas con la key adulterada filtran información sobre la mitad privada. Por esta razón, el formatting de key de PuTTY contiene un MAC (Código de Autenticación de Mensaje), descodificado de la frase de contraseña y cubriendo las mitades públicas y privadas de la key. Por lo tanto, ofrecemos la comodidad de tener la key pública disponible en text plano, pero también detectamos al instante cualquier bash de ataque de manipulación, ofreciendo una combinación de security y conveniencia que no creo que se encuentre en ningún otro formatting de key. Como beneficio adicional, el MAC también cubre el comentario de la key, evitando cualquier posible daño que podría ser posible si alguien intercambiara dos keys e intercambiara los comentarios. El enfoque de OpenSSH de mantener cifrada la key pública también podría brindar cierta security contra este tipo de ataque, pero no está claro que brinde la protección adecuada: el encryption diseñado para la confidencialidad a menudo deja forms en que los datos encryptions pueden ser modificados útilmente por un atacante. Para la protección de la integridad real, quiere un MAC real dedicado, que está diseñado para hacer precisamente eso.