11 votos

Recuperar la frase de contraseña de la clave privada SSH del llavero

Después de realizar una actualización de MacOS, ssh me pidió mi frase de contraseña ssh. He olvidado por completo la frase de contraseña desde que keychain la gestiona.

Este responder muestra cómo configurar el llavero para volver a conectar y eliminar mi necesidad de introducir la frase de contraseña cuando me conecto a un host. Después de seguir esos pasos puedo hacer ssh con éxito sin conocer la frase de contraseña de la clave privada, lo que sugiere que la frase de contraseña se almacena en el llavero.

Sin embargo, no puedo encontrar la frase de contraseña ssh en el llavero. ¿Hay alguna manera de recuperar la frase de contraseña de la clave ssh desde el llavero?

Este pregunta/respuesta dice que el llavero mantiene las frases de paso como elementos regulares del llavero, pero sólo puedo encontrar un elemento después de buscar ssh y que es un elemento más antiguo para mi clave original id_rsa que ya no está en uso.

19voto

Approach Puntos 156

Abra Keychain Access y active la opción Ver > Mostrar elementos invisibles.

Entonces debe buscar id_rsa o 'ssh'.

7voto

Raghunath Puntos 11

Respuesta corta: Sí, seleccione "Mostrar elementos invisibles" en el acceso al llavero

(Originalmente, esta respuesta decía incorrectamente: "Actualmente no parece haber una forma de recuperar la frase de contraseña". El resto de la respuesta que compara cómo se almacenan las frases de paso de las claves SSH en los llaveros de las versiones antiguas y nuevas de macOS se mantiene aquí como referencia).

En Mac OS X 10.11 y anteriores, las frases de contraseña de SSH se almacenaban mediante ssh y ssh-add en el llavero de inicio de sesión del usuario, utilizando las siguientes propiedades (pseudocódigo adaptado de Apple OpenSSH-195.40.1 ):

{
    kSecClass: kSecClassGenericPassword,
    kSecAttrAccount: pathToPrivateKey,
    kSecAttrLabel: "SSH: " + pathToPrivateKey,
    kSecAttrService: "SSH"
}

A partir de macOS 10.12, la frase de contraseña se consulta y almacena con propiedades que obligan a almacenarla en el llavero "sincronizable" (la base de datos "Elementos locales", también llamada "Llavero de iCloud" si está activada), con acceso controlado por un "Grupo de Acceso" ; ssh ignorará los elementos antiguos de su llavero de inicio de sesión. Desde Apple OpenSSH 209 :

{
    kSecClass: kSecClassGenericPassword,
    kSecAttrAccount: pathToPrivateKey,
    kSecAttrLabel: "SSH: " + pathToPrivateKey,
    kSecAttrService: "OpenSSH",
    kSecAttrNoLegacy: TRUE,
    kSecAttrAccessGroup: "com.apple.ssh.passphrases"
}

Apple no ha habilitado el security herramienta de línea de comandos para acceder al contenido del llavero sincronizable, y por defecto (a no ser que se seleccione "Mostrar elementos invisibles") Keychain Access tampoco muestra el contenido completo del mismo, aunque el elemento del llavero ssh no esté marcado explícitamente como invisible .

Si quieres intentar obtener la contraseña sin usar el acceso al llavero, no creo que sea sencillo o incluso posible escribir un programa que obtenga la frase de contraseña del llavero, ya que el acceso al mismo está controlado por la firma de código de Apple.

Puedes ver algunos detalles limitados sobre las frases de contraseña almacenadas en tu llavero sincronizable utilizando la función sqlite3 pero la mayoría de los campos interesantes, como las etiquetas de los artículos, están codificados.

$ sqlite3 Library/Keychains/*/keychain-2.db "select rowid, datetime(mdat+978307200, 'unixepoch', 'localtime'), agrp from genp where agrp = 'com.apple.ssh.passphrases' order by mdat asc"  
45|2017-01-07 13:53:13|com.apple.ssh.passphrases
46|2017-01-08 23:59:25|com.apple.ssh.passphrases

4voto

heemayl Puntos 21116

MacOS 10.13.3:

Abra Keychain Access y active la opción Ver > Mostrar elementos invisibles.

Entonces debes buscar id_rsa o 'ssh'.

Haz clic para revelar la frase. Es posible que tenga que proporcionar su contraseña de acceso al Mac en ese momento.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X