macOS 10.12 Sierra não esquecerá minha senha do arquivo de chaves ssh

25

Depois de criar um novo id-rsaarquivo de chave criptografado ssh-keygene usá-lo pela primeira vez, não consigo fazer com que o macOS esqueça a senha. Isso é semelhante a como fazer com que o OS X não se lembre da pergunta da senha da chave ssh, mas pior.

Tentei reiniciar, matar o ssh-agent, bloquear todos os meus chaveiros, mas ele ainda parece estar armazenado em algum lugar. No entanto, não consigo encontrá-lo em nenhum chaveiro. Isso parece ser muito inseguro. As respostas para a senha da chave privada SSH nunca removida com o Keychain / ssh-agent também não ajudam.

De fato, a caixa de diálogo que costumava aparecer perguntando se você deseja armazenar ou não a frase secreta não parece mais existir.

hogliux
fonte
Você verificou se está realmente criptografado?
John Keates
Sim. Tenho certeza de que é como o ssh pede a senha na primeira vez que a uso. Alguém pode realmente reproduzir isso?
Hogliux 22/09/16
Bem, também funciona assim com a minha instalação, é como o ssh / ssh-agent foi configurado.
John Keates
Isso é verdade se você clicar na caixa de seleção para informar ao macOS para armazenar a senha no chaveiro. No entanto, se você não clicar nessa caixa de seleção, o macOS sempre solicitará a senha. Mas mesmo se você clicar nele, sempre poderá removê-lo novamente no utilitário de chaves. Desde Sierra, a caixa de diálogo não aparece mais e não há entrada no utilitário de chaveiro.
Hogliux 23/09/16
Esta é a caixa de diálogo que estou falando o que não parece existir mais: dribin.org/dave/resources/pictures/ssh_leopard_dialog.png
hogliux

Respostas:

27

Para desativar o armazenamento da senha no chaveiro, você deve adicionar as seguintes linhas ao arquivo ~ / .ssh / config :

Host *
UseKeyChain no

Se você já possui uma senha armazenada no chaveiro, é possível excluí-la usando os comandos:

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

Se você gostaria de ter um comportamento como no OS X El Capitan ou anterior (ou seja, frase secreta armazenada até o logout ou reiniciar), basta adicionar a ~ / .ssh / config:

AddKeysToAgent yes

Você não precisa iniciar o ssh-agent.

mbamac
fonte
1
Esta resposta resolve permanentemente o problema! Então marquei isso como a resposta correta. Obrigado!
Hogliux 12/10/16
editar sugeriu: mudança Library/Keychains/<UUID>/para ~/Library/Keychains/<UUID>/para maior clareza :)
Mohamed Hafez
edição sugerida aceita :)
mbamac 19/10/16
20

Graças a Clive, compreendo melhor esse novo 'recurso'. Quando você digita sua senha, o Sierra a adiciona ao seu Keychain, mas não ao ssh-agent. Se sua identidade não está no ssh-agent, não há como gerenciá-la ssh-add. Para gerenciar (por exemplo, remover) sua identidade do Keychain, você precisa adicionar sua identidade ssh-agentusando ssh-add. Depois de adicionar sua identidade, ssh-agentvocê pode usá ssh-add -K -d-la para removê-la dos dois ssh-agente do Keychain. Se você deseja que sua identidade seja adicionada ao ssh-agent toda vez que você usa o ssh, adicione:

AddKeysToAgent yes

para o seu .ssh/config. Isso garantirá que ssh-agentsempre tenha sua identidade.

Gene Frenkler
fonte
Apenas um acompanhamento. Se você adicionar 'UseKeyChain no' ao seu .ssh / config, ele evitará que o Keychain adicione sua senha. Você deseja manter 'AddKeysToAgent yes' no ssh-agent manterá sua senha até que você reinicie ou use o ssh-add -d.
Gene Frenkler
Observe que isso requer o uso do OpenSSH enviado pela Apple. Este patch não está incluído na fabricação caseira a partir dehomebrew/dupes/openssh: stable 7.3p1
Ryan Gibbons
3
ssh-add -K -d

Isso pode remover senhas previamente armazenadas no chaveiro. Desde o macOS 10.12 Sierra, para evitar a frase secreta armazenada no chaveiro novamente, faça o ssh-addprimeiro.

Clive Lin
fonte
Sim. Isso costumava funcionar em versões anteriores do macOS Sierra. Mas não funciona mais. O macOS Sierra ainda se lembra da senha.
Hogliux 23/09/16
1
ESTÁ BEM. Mais investigação. Ele esquece uma vez, mas volta para o chaveiro depois de usá-lo em qualquer lugar (ssh, scp, git etc.). Um estranho tipo me enviou um e-mail diretamente e descobriu que a frase secreta parece estar armazenada em ~ / Library / Keychains / <SOME-UUID> /keychain-2.db. Porém, mesmo ao bloquear meu chaveiro de login (e todos os outros chaveiros), o os x não solicitará minha senha de chaveiro ao acessar a senha. Isso realmente não parece certo.
hogliux 23/09/19
De fato, parece que na Sierra a frase secreta está sendo salva no local do chaveiro e não no usual de login.
M1keil # 30/16