Pregunta

ssh-add -l Muestra que tengo 3 claves RSA agregadas a mi agente SSH.

ssh-add -L Muestra esas claves públicas.

¿Cómo obtengo las claves privadas también, para poder guardarlas en un archivo? ¿O es por diseño que esto es imposible? ¿Cómo funciona entonces?

¿Se puede pedir a SSH-agent que realice operaciones utilizando la clave privada? ¿Cómo puedo pedirle que cifre/descifra un número para mí?

Está bien que tenga que escribir código para esto (el lenguaje de programación no importa), pero preferiría usar una herramienta existente o una biblioteca.

¿Fue útil?

Solución

No es posible obtener la clave privada o realizar el cifrado utilizando el protocolo entre SSH y SSH-Agent, pero es posible obtener la clave privada al descargar la memoria del agente SSH. En Linux debe ser root para hacer el volcado de memoria.

Acabo de encontrar una muy buena explicación sobre cómo funciona SSH-Agent: http://www.unixwiz.net/techtips/ssh-agent-forwarding.html . Esto responde parcialmente a algunas de mis preguntas.

  • Uno de los aspectos más inteligentes del agente es cómo puede verificar la identidad de un usuario (o más precisamente, posesión de una clave privada) sin revelar esa clave privada para nadie.

  • Uno de los beneficios de seguridad del reenvío de agentes es que la clave privada del usuario nunca aparece en sistemas remotos o en el cable, incluso en forma cifrada.

Por lo tanto, el protocolo entre el cliente SSH y el agente SSH no provoca una manera en SSH1 o SSH2 para sacar las claves privadas de un agente SSH.

Sin embargo, como raíz, puede obtener un volcado de memoria de SSH-agent e intentar extraer la clave privada desde allí. https://blog.netspi.com/stealing-unencrypted-ssh-agent- keys-from-memory Hace exactamente eso, y hay otras piezas de software mencionadas en la sección de comentarios de esa página. Sin embargo, el software en esa página no funcionó para mí en Debian Buster: el volcado de memoria no contenía ninguna tecla, aunque ssh-add -l ha mostrado una tecla RSA.

Otros consejos

En mi caso, eliminé accidentalmente la carpeta .ssh pero mis teclas están cargadas. Pero como no puedo recuperarlos de SSH-Add, tuve que usar el software de recuperación de archivos.

Probablemente no necesite hacerlo. Lo más probable es que solo quieras una clave pública:

ssh-add -L > ~/.ssh/id_rsa.pub
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top