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?


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


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 .


.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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.