![¿Cuál es la diferencia entre una clave OpenSSH y una clave PuTTY?](https://rvso.com/image/31646/%C2%BFCu%C3%A1l%20es%20la%20diferencia%20entre%20una%20clave%20OpenSSH%20y%20una%20clave%20PuTTY%3F.png)
Descubrí que ssh-keygen
(paquete "ssh") produce claves diferentes de puttygen
("masilla" paquete).
Si creo claves públicas y privadas con ssh-keygen
algunos servidores SSH no aceptarán mis claves. Si creo claves con puttygen
un solo servidor, las acepta.
¿Por qué los repositorios de Linux no proponen alguna solución (paquete) común?
he encontrado otro paquetessh-3.2.9.1que crea claves que funcionan con PuTTY. Pero ¿por qué no existe ninguna solución útil en SSH?
Respuesta1
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 clave con OpenSSH usando ssh-keygen
las opciones predeterminadas, funcionará con prácticamente todos los servidores que existen. Un servidor que no acepte dicha clave sería antiguo, usaría una implementación diferente de SSH o estaría configurado de una manera extrañamente restrictiva. Es posible que algunos servidores no admitan claves de un tipo no predeterminado. En particular, las claves ECDSA hacen que el establecimiento de la sesión sea ligeramente más rápido, pero solo son compatibles con versiones recientes de OpenSSH.
PuTTY utiliza un formato de archivo de clave diferente. Viene con herramientas paraconvertirentre su propio .ppk
formato y el formato de OpenSSH.
Este ssh-3.2.9.1 que encontraste esun producto comercialque tiene su propio formato de clave privada diferente. No hay ninguna razón para usarlo en lugar de OpenSSH. Solo puede ser menos compatible, requiere pago y no hay tutoriales sobre cómo usarlo.
Respuesta2
La mayoría de las distribuciones de Linux tienen PuTTY (nombre del paquete putty
) disponible para Linux. Puede instalar PuTTY en el lado de Linux y usarlo puttygen
para convertir los archivos .ppk en ssh
archivos de claves de estilo normal (llamados archivos PEM, aunque no tengan un .pem en el nombre del archivo).
puttygen id_dsa.ppk -O private-openssh -o id_dsa
NOTA:También puede utilizarlo puttygen
para importar ssh
archivos PEM de estilo nuevamente a PuTTY.
El autor de PuTTY optó por la simplicidad, por lo que las claves pública y privada, que constituyen la seguridad subyacente utilizada por PuTTY/SSH-2autenticación de claves, se almacenan en un único archivo propietario .ppk. Normalmente, estas claves se mantienen como dos archivos separados mediante ssh
.
En Linux, los archivos clave normalmente se guardan en el directorio.ssh.
Hay una buena descripción general del proceso de conversión aquí en esta pregunta de Stack Overflow titulada:Convertir formato de archivo PEM a PPK.
El autor de PuTTY también analiza sus razones para utilizar archivos .ppk en elManual de usuario de PuTTY. Puede leer sobre esto aquí en la sección 8.2.12.
Respuesta3
Ambos almacenan un "par de claves RSA para la versión 2 del protocolo SSH" y pueden serconvertidoindistintamente; sin embargo, con respecto a la diferencia de formato almacenado real:
dehttps://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/key-formats-natively.html
Las ventajas del formato de clave PuTTY son:
- La mitad pública de la clave se almacena en texto sin formato.El formato de clave privada de OpenSSH cifra todo el archivo de clave,para que el cliente tenga que pedirle su contraseña antes de poder hacer algo con la clave. En particular, esto significa que tiene que solicitar su contraseña antes de poder siquieraofertala clave pública al servidor para la autenticación. El formato de PuTTY almacena la clave pública en texto sin formato y solo cifra la mitad privada, lo que significa que puede enviar automáticamente la clave pública al servidor y determinar si el servidor está dispuesto a aceptar autenticaciones con esa clave, y solo solicitará una frase de contraseña si realmente es necesario.
Creo que OpenSSH leerá un.pub
archivo para este propósito si aparece junto al archivo de clave privada, pero esto es una fuente de confusión tan a menudo como es conveniente (he visto a personas reemplazar un archivo de clave privada y dejar uno desactualizado.pub
junto (¡y luego se sentirá muy confundido por el proceso de autenticación SSH resultante!).- La clave está totalmente a prueba de manipulaciones.Los formatos de clave que almacenan la clave pública en texto sin formato pueden ser vulnerables a un ataque de manipulación, en el que la mitad pública de la clave se modifica de tal manera que las firmas realizadas con la clave manipulada filtran información sobre la mitad privada. Por esta razón,El formato de clave de PuTTY contiene un MAC (código de autenticación de mensaje), eliminado de la frase de contraseña y que cubre las mitades pública y privada de la clave.Por lo tanto, brindamos la conveniencia de tener la clave pública disponible en texto sin formato, pero también detectamos instantáneamente cualquier intento de ataque de manipulación, brindando una combinación de seguridad y conveniencia que no creo que se encuentre en ningún otro formato de clave. Como beneficio adicional, MAC también cubre el comentario de la clave, evitando cualquier posible daño que podría ocurrir si alguien intercambiara dos claves e intercambiara los comentarios.
El enfoque de OpenSSH de mantener cifrada la clave públicapodríaTambién brindan cierta seguridad contra este tipo de ataque, pero no está claro que brinden la protección adecuada: el cifrado diseñado para la confidencialidad a menudo deja formas en las que un atacante puede modificar de manera útil los datos cifrados. Para una protección real de la integridad, usted necesita una MAC dedicada real, que esté diseñada para hacer precisamente eso.
[énfasisagregado]