Minha configuração atual:
- Windows 10 Pro
- também deve funcionar com versões mais antigas do windows que fornecem o comando setx (Win7)
-
Babun shell (zsh)
- é baseado no cygwin
O que eu fiz:
Eu decidi adicionar os comandos de inicialização ao arquivo .zshrc para que ele seja executado toda vez que eu inicializo um novo shell. Então aqui estão os comandos:
# startup of the ssh-agent
AGENT_PID=$(pgrep -x ssh-agent)
if [ $? -ne 0 ]; then
echo "~/.zshrc: Starting SSH Agent!"
eval 'ssh-agent' && ssh-add ~/.ssh/id_rsa
setx SSH_AUTH_SOCK $SSH_AUTH_SOCK
setx SSH_AGENT_PID $SSH_AGENT_PID
echo "~/.zshrc: SSH Agent running (PID: $SSH_AGENT_PID)"
else
echo "~/.zshrc: SSH Agent already running (PID: $AGENT_PID)"
fi
- O comando pgrep procura por agentes SSH em execução. Se um estiver em execução, ele mostrará o ID do processo e ignorará a inicialização de outro agente.
- Se nenhum for encontrado, o agente será iniciado e as variáveis do ambiente serão exportadas
-
eval 'ssh-agent'
inicia o agente e avalia sua saída que está configurando as variáveis de ambienteSSH_AUTH_SOCK
eSSH_AGENT_PID
-
ssh-add
adiciona a chave privada especificada ao agente, que inicialmente pedirá a frase secreta da chave privada. - Como as variáveis mencionadas acima são definidas apenas para o processo de shell iniciado, é necessário defini-las globalmente para que o usuário esteja disponível para outros shells e outras ferramentas não iniciadas a partir do shell. Isso pode ser feito usando o comando setx do Windows. Eu simplesmente configuro as variáveis de acordo com as variáveis recuperadas do agente.
-
Depois disso, você estará pronto e o agente estará em execução e poderá ser usado assim que você iniciar um shell. Para garantir que o agente seja iniciado com a inicialização do Windows, você também pode adicionar o ativador de shell ao início automático do Windows.