Você pode colocá-lo no seu .bashrc
, mas antes de iniciá-lo novamente, você deve verificar se ele já está sendo executado. Por exemplo, você pode fazer
if [ -z "$SSH_AUTH_SOCK" ]; then
(umask 077; ssh-agent > "$HOME/.ssh/environment")
ssh-add
fi
como parte do processo.
Also, if the agent is not running, you could first test if that environment file exists and source it like
environ="$HOME/.ssh/environment"
if [ -f "$environ" ]; then
. "$environ" >/dev/null
fi
if [ -z "$SSH_AUTH_SOCK" ] || ! ps -p "$SSH_AGENT_PID" | grep -q ssh-agent; then
(umask 077; ssh-agent > "$environ")
ssh-add
fi
Há uma longa resposta detalhando muito deste aqui no site da U & L.
Eu faço algo assim, mas o arquivo environ
inclui o nome do host atual, pois meu diretório inicial está em um compartilhamento de rede e desejo executar o agente em hosts diferentes simultaneamente.
E para explicitar explicitamente como isso responde à sua pergunta sobre como obter a variável SSH_AUTH_SOCK
passada entre os processos, você armazena a saída de ssh-agent
em um arquivo e a obtém novamente em cada shell