macOS 10.12 Sierra no olvidará mi frase de contraseña sf keyfile

25

Después de crear un nuevo archivo de id-rsaclave cifrada con ssh-keygeny usarlo por primera vez, no puedo hacer que macOS olvide la frase de contraseña. Esto es similar a cómo hacer que OS X no recuerde la pregunta de la contraseña de la clave ssh , pero peor.

Intenté reiniciar, matar ssh-agent, bloquear todos mis llaveros, pero todavía parece estar almacenado en algún lugar. Sin embargo, no puedo encontrarlo en ningún llavero. Esto parece ser muy inseguro. Las respuestas a la contraseña de clave privada SSH nunca se eliminaron con Keychain / ssh-agent tampoco ayudan.

De hecho, el cuadro de diálogo que solía aparecer preguntándole si deseaba almacenar la frase de contraseña o no, parece que ya no existe.

Hogliux
fuente
¿Verificaste si en realidad está encriptado?
John Keates
Sí. Estoy bastante seguro de que es como ssh pide la frase de contraseña la primera vez que la uso. ¿Puede alguien realmente reproducir esto?
hogliux
Bueno, también funciona de esa manera con mi configuración, es la forma en que se configuró ssh / ssh-agent.
John Keates
Eso es cierto si hace clic en la casilla de verificación para indicarle a macOS que almacene la frase de contraseña en el llavero. Sin embargo, si no hace clic en esa casilla de verificación, macOS siempre debe solicitar la frase de contraseña. Pero incluso si hizo clic en él, siempre pudo eliminarlo nuevamente en la utilidad de llavero. Desde Sierra, el cuadro de diálogo ya no aparece y no hay ninguna entrada en la utilidad de llavero.
hogliux
Este es el cuadro de diálogo del que hablo, que parece que ya no existe: dribin.org/dave/resources/pictures/ssh_leopard_dialog.png
hogliux el

Respuestas:

27

Para deshabilitar el almacenamiento de la frase de contraseña en el llavero, debe agregar las siguientes líneas al archivo ~ / .ssh / config :

Host *
UseKeyChain no

Si ya tiene una frase de contraseña almacenada en el llavero, puede eliminarla usando los comandos:

cd ~/Library/Keychains/<UUID>/
sqlite3 keychain-2.db 'delete from genp where agrp="com.apple.ssh.passphrases"'

Si desea tener un comportamiento como en OS X El Capitan o anterior (es decir, la frase de contraseña almacenada hasta el cierre de sesión o reiniciar) simplemente agregue a ~ / .ssh / config:

AddKeysToAgent yes

No necesita iniciar ssh-agent.

mbamac
fuente
1
¡Esta respuesta resuelve permanentemente el problema! Así que marqué esto como la respuesta correcta. ¡Gracias!
hogliux
sugerido edición: el cambio Library/Keychains/<UUID>/a ~/Library/Keychains/<UUID>/para mayor claridad :)
Mohamed Hafez
editar sugerido aceptado :)
mbamac
20

Gracias a Clive, entiendo mejor esta nueva 'característica'. Cuando escribe su frase de contraseña, Sierra la agrega a su Llavero pero no al agente ssh. Si su identidad no está en ssh-agent, no hay forma de administrarla ssh-add. Para administrar (es decir, eliminar) su identidad de Keychain, debe agregar su identidad ssh-agentmediante ssh-add. Una vez que haya agregado su identidad ssh-agent, puede usarla ssh-add -K -dpara eliminarla de ambos ssh-agenty de Keychain. Si desea que su identidad se agregue a ssh-agent cada vez que use ssh, agregue:

AddKeysToAgent yes

a tu .ssh/config. Esto asegurará que ssh-agentsiempre tenga su identidad.

Gene Frenkler
fuente
Solo un seguimiento. Si agrega 'UseKeyChain no' a su .ssh / config, evitará que Keychain agregue su frase de contraseña. Desea mantener 'AddKeysToAgent yes' en ssh-agent mantendrá su frase de contraseña hasta que reinicie o use ssh-add -d.
Gene Frenkler
Tenga en cuenta que esto requiere el uso de OpenSSH enviado por Apple. Este parche no está incluido en la elaboración casera a partir dehomebrew/dupes/openssh: stable 7.3p1
Ryan Gibbons
3
ssh-add -K -d

Esto puede eliminar frases de contraseña almacenadas previamente en el llavero. Desde macOS 10.12 Sierra, para evitar nuevamente la frase de contraseña almacenada en el llavero, asegúrese de hacerlo ssh-addprimero.

Clive Lin
fuente
Sí. Esto solía funcionar en versiones anteriores de macOS Sierra. Pero ya no funciona. macOS Sierra todavía recuerda la frase de contraseña.
hogliux
1
OKAY. Más investigación Lo olvida una vez, pero volverá directamente al llavero después de usarlo en cualquier lugar (ssh, scp, git, etc.). Un extraño extraño me envió un correo electrónico directamente y descubrió que la frase de contraseña parece estar almacenada en ~ / Library / Keychains / <SOME-UUID> /keychain-2.db. Pero incluso al bloquear mi llavero de inicio de sesión (y todos los demás llaveros), os x no me pedirá la contraseña de mi llavero cuando acceda a la frase de contraseña. Eso realmente no parece correcto.
hogliux
De hecho, parece que en Sierra la frase de contraseña se está guardando en esa ubicación de llavero y no en el llavero de inicio de sesión habitual.
m1keil