openssh: Faça com que o ssh adicione chaves ao agente, conforme necessário

25

Quando eu ssh em um servidor e minha chave não está carregada no agente, tenho que abortar e, em seguida, execute ssh-add para colocar minha chave no agente. Eu gostaria que o comando ssh adicionasse a chave automaticamente se ela não estiver presente. Isso é possível?

EnigmaticPhysicist
fonte
Você possui uma chave para todos os hosts de destino ou possui chaves diferentes com senhas diferentes? Você está usando massa de vidraceiro do Windows ou um sistema de janelas baseado em X no Linux ou em um Mac?
Otheus 11/03/16
Estou usando apenas uma tecla e openssh. O ssh já descobre a chave certa e solicita a senha, mas depois que a digito, a chave não será salva no agente. Esse comportamento é o mesmo em todos os sistemas POSIX e cygwin.
enigmaticPhysicist
Parece semelhante? stackoverflow.com/questions/3466626/…
techraf 11/16
Não, isso é diferente. Quero inserir a senha da chave toda vez que o agente for parado. Eu gostaria que o ssh adicionasse a chave ao agente diretamente, conforme necessário, em vez de precisar primeiro usar o ssh-add.
enigmaticPhysicist

Respostas:

35

A AddKeysToAgentopção faz o que eu quero. Eu posso especificar -o AddKeysToAgent=yesna linha de comando ou adicionar AddKeysToAgent yesuma linha sozinha no meu .ssh/config. Qualquer um trabalha.

Parece que esta é uma adição muito recente ao openssh, aparecendo na versão 7.2, de 28/02/2016!

http://www.openssh.com/txt/release-7.2

Obrigado, OpenBSD! Eu vou usar muito isso .

EnigmaticPhysicist
fonte
.ssh / config: linha 3: Opção de configuração incorreta: AddKeysToAgent. Alguma ideia? Servidor Unix
trainoasis
Verifique sua versão do openssh. $ ssh -V. Ele precisa ser mais novo ou igual a 7.2.
enigmaticPhysicist
Na verdade, foi esse o caso, obrigado. Ainda pede a senha após a nova conexão. Como automatizar o git pull via script, por exemplo, se você sempre precisa inserir o passe? E eu acho que id_rsa sem senha não é uma boa idéia ...
trainoasis
Você quer dizer entre logins ssh ou logins locais? A senha deve ser apagada entre logins locais.
EnigmaticPhysicist
Sempre que eu executo um script localmente, ele deve ssh lá e executar git pull etc., mas é claro que não pode porque precisa de senha para comandos GIT (ssh funciona sem porque pass está no Keychain, mas é claro que os comandos solicitam pass)
trainoasis