As versões ssh-agent
e recentes do OpenSSH simplificam:
-
Inicie o tempo normal
ssh-agent
com o tempo limite padrão para as chaves adicionadas (60 minutos, por exemplo):eval 'ssh-agent -t 60m'
-
Configure seu
ssh
para adicionar as chaves realmente usadas ao agente. Adicione uma nova linha em ~ / .ssh / config ':AddKeysToAgent yes
Este recurso está no mais recente OpenSSH 7.2. Nas versões anteriores, você precisa adicionar a chave ao agente manualmente, se o tempo limite for excedido, mas pode ser simplesmente automatizado usando a função bash, algo assim:
ssh() { /bin/ssh -o BatchMode=yes $* || \ ssh-add path/to/the-key && /bin/ssh $* }
A ideia: tente se conectar usando a chave no modo batch (não solicitará passphrase e falhará, se a chave não estiver lá) e, após uma falha, adicione a chave ao agente e execute novamente o comando ssh.