Configuração do agente SSH no Windows com cygwin

Configuração do agente SSH no Windows com cygwin

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
  1. 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.
  2. Se nada for encontrado, o agente será iniciado e as variáveis ​​de ambiente serão exportadas
    1. eval `ssh-agent`inicia o agente e avalia sua saída que está configurando as variáveis ​​de ambiente SSH_AUTH_SOCKeSSH_AGENT_PID
    2. ssh-addadiciona a chave privada especificada ao agente que solicitará inicialmente a senha da chave privada.
    3. 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

informação relacionada