Eu uso keychain
para gerenciar minhas variáveis de ambiente ssh-agent
, e lida com a certeza de que apenas um agente está sendo executado por vez. Do meu .bashrc
em máquinas apropriadas:
# is this an interactive shell?
if [[ $- == *i* ]]; then
# set up ssh key server
if [[ -x /usr/bin/keychain ]]; then
eval $(keychain --eval --ignore-missing the <keys I want>)
fi
fi
Ele armazena as variáveis de ambiente em ~/.keychain
, executa o agente se ele não for encontrado e retorna as variáveis novas ou existentes para o eval
. Eu configurei isso há alguns anos e não toquei nele. Se você tiver ssh-askpass
instalado, ele poderá solicitar a senha em um ambiente X11 mesmo quando o shell que estiver executando o keychain não estiver visível (como os scripts init X11).
Existem outras maneiras de usá-lo, mas isso funciona para mim em várias estações de trabalho Linux, incluindo o login em uma estação de trabalho a partir do remoto, quando não estou conectado ao X11.