Configuração do Agente SSH no Windows com o cygwin

4

Eu criei essa pergunta apenas como um lembrete para mim, pois geralmente faço a configuração de um agente SSH apenas uma vez a cada poucos anos.

Então, como alguém pode configurar um agente SSH no Windows, assumindo o uso de um ambiente de shell semelhante ao Linux?

    
por shillner 31.01.2017 / 15:35

2 respostas

6

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
  1. 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.
  2. Se nenhum for encontrado, o agente será iniciado e as variáveis do 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_SOCK e SSH_AGENT_PID
    2. ssh-add adiciona a chave privada especificada ao agente, que inicialmente pedirá a frase secreta 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. 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.

    
por 31.01.2017 / 15:35
0

para mim o que funcionou é seguir a configuração do Oracle cygwin ssh [1]. A partir daí, você está interessado em Instalar o Cygwin e depois em Configurar o SSH. Eu estou usando esta configuração no trabalho para todos os tipos de QE para conectar as máquinas e realizar testes lá. Você pode fazer a maioria dos comandos do Linux, bem como usar os comandos do Windows, o que é muito legal.

Basicamente, o shell do Linux no Windows: -)

Felicidades,

Martin

[1] link

    
por 31.01.2017 / 17:06