Como usar o ssh-agent.exe sem cygwin para a chave privada protegida por frase secreta?

2

Gostaria de acessar um serviço SSH com chave privada protegida por frase secreta no Windows usando o ssh-agent.exe.

Até agora consegui utilizar o ssh-agent.exe alterando manualmente a configuração do ambiente na minha conta inicial para definir uma variável de ambiente da seguinte forma:

SSH_AUTH_SOCK = %TEMP%\ssh-Co312dEaE\agent.1208

A variável de ambiente não deve ser definida na caixa cmd ou então outro processo que acessa o ssh.exe pode não reconhecer a variável de ambiente. Tem que definir na conta de usuário do Windows.

A configuração acima precisa ser refazida novamente após a reinicialização da máquina.

Existe alguma maneira boa de automatizar o lançamento do ssh-agent e configurar o SSH_AUTH_SOCK no contexto da sessão nativa do Windows?

    
por Chau Chee Yang 20.07.2011 / 12:14

2 respostas

0

Quando você executar ssh-agent , deverá salvar as variáveis de ambiente SSH_AUTH_SOCK e SSH_AGENT_PID em um arquivo e usá-las para ver se o agente já está em execução.

Você precisa executar o cygwin uma vez para iniciar o agente, mas depois disso ele não precisa estar em execução. Isso provavelmente poderia ser configurado como um serviço também.

Para executar o ssh-agent.exe em segundo plano, adicionei o seguinte a .bashrc

#
# Store env variables
run_ssh_agent="${HOME}/.ssh/agent-for-${HOSTNAME}.pid"
#
# Include env variables if they exist
[ -f "$run_ssh_agent" ] && . "$run_ssh_agent" >/dev/null 2>&1
#
# Test if agent is running
if kill -0 $SSH_AGENT_PID > /dev/null 2>&1; then
    #
    # Agent is running
    echo Agent pid $SSH_AGENT_PID
else
    #
    # Agent is not running, launch it and store env variables
    ssh-agent -s > "$run_ssh_agent"
    . "$run_ssh_agent"
    #
    # Add private keys
    ssh-add
fi
#
# List loaded identities
ssh-add -l

Isso não atinge o que você está procurando (executando o ssh-agent sem cygwin), mas funciona perfeitamente para armazenar chaves na memória.

    
por 04.04.2014 / 22:24
0

Eu criei um script bastante complicado para o cmd.exe do Windows junto com um hack do registro que pode ser usado para torná-lo autorun no shell de comando (a maioria) já lançado.

link

Basicamente, ele faz coisas semelhantes como um script Unix para fazer o mesmo, exceto que ele define um arquivo de soquete específico a ser usado, ao invés de tentar analisar a saída do agente ssh.

Script 100% do Windows cmd, exceto para ssh, ssh-agent e ssh-add.

    
por 14.11.2014 / 05:38