Criei esta pergunta apenas como um lembrete para mim, já que normalmente faço a configuração de um agente SSH apenas uma vez a cada poucos anos.
Então, como configurar um agente SSH no Windows, assumindo o uso de um ambiente shell semelhante ao Linux?
Responder1
Minha configuração atual:
- Windows 10 Pró
- também deve funcionar com versões mais antigas do Windows que fornecem o comando setx (Win7)
- Concha de baban(zsh)
- é baseado em Cygwin
O que eu fiz:
Decidi adicionar os comandos de inicialização ao arquivo .zshrc para que ele seja executado sempre que eu iniciar 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 agentes SSH em execução. Se um estiver em execução, ele exibirá o ID do processo e ignorará a inicialização de outro agente.
- Se nada for encontrado, o agente será iniciado e as variáveis de 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 solicitará inicialmente a senha 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. Simplesmente defino as variáveis de acordo com aquelas recuperadas do agente.
Depois disso, você estará pronto e o agente estará em execução e utilizável assim que você iniciar um shell pela primeira vez. Para ter certeza de que o agente será iniciado com a inicialização do Windows, você também pode adicionar o iniciador de shell à inicialização automática do Windows.
Responder2
para mim o que funcionou foi seguir a configuração do Oracle cygwin ssh [1]. A partir daí você está interessado em instalar o Cygwin e depois configurar o SSH. Estou usando essa configuração no trabalho para todos os tipos de QE se conectarem às máquinas e realizarem testes lá. Você pode executar a maioria dos comandos do Linux e também usar comandos do Windows, o que é muito legal.
Basicamente shell Linux no Windows :-)
Saúde,
Martinho
[1]https://docs.oracle.com/cd/E24628_01/install.121/e22624/preinstall_req_cygwin_ssh.htm#EMBSC150