openssh no Windows 7, execute ssh-add uma vez para todas as instâncias de cmd

4

Eu instalei o openSSH como parte da distribuição mais recente do cygwin. Meu objetivo é usar o ssh-agent do console de janela nativo (cmd) para fazer login sem senha em várias máquinas Linux.

Gerei as chaves e as carreguei para os diretórios apropriados nos hosts remotos e tudo funciona bem.

O único problema que tenho é que toda vez que eu abro um novo cmd eu tenho que rodar 'ssh-add', digite a senha e então eu consigo logar sem senha nos hosts remotos. Existe uma maneira de superar esse problema? A solução ideal seria executar o ssh-add apenas uma vez.

fyi: Estou abrindo o cmd como um argumento para o agente ssh: 'ssh-agent cmd'

    
por nonouco 26.09.2012 / 15:28

2 respostas

3

Na verdade, criei uma ferramenta chamada "ssh-agent-helper" que invoca ssh-agent e a disponibiliza globalmente, para que você possa usar ssh-add , ssh ou git de qualquer terminal, por exemplo CMD, Bash, PowerShell etc sem qualquer configuração.

Você pode encontrá-lo aqui: link

    
por 04.04.2017 / 18:27
-1

Você não poderá executar o ssh a partir da janela de comando nativa. Você precisará executar a "janela" bash do Cygwin para executar qualquer um dos binários do Cygwin.

Dito isto, no Cygwin bash "windows", você precisa salvar a saída do ssh-agent em um arquivo e, em seguida, fornecer esse arquivo para qualquer um dos scripts de login em que deseja usar as credenciais armazenadas em cache. Na primeira "janela", execute:

$ ssh-agent >your_save_file     # Starts ssh-agent, saves shell variables
$ . your_save_file              # Loads saved shell variables into current shell
$ ssh-add                       # Adds keys into ssh-agent

Em cada um dos outros, execute:

$ . your_save_file

Todos os processos "windows" e filhos iniciados após o comando . your_save_file ser executado poderão usar as credenciais armazenadas em cache no ssh-agent. Sempre que o agente ssh for interrompido ou interrompido, ou após a reinicialização do sistema, será necessário executar o primeiro conjunto de comandos novamente. Se você estiver em dúvida sobre se as credenciais armazenadas em cache estão ou não disponíveis em um determinado shell, execute

$ ssh-add -l            # Show list of loaded keys in ssh-agent
    
por 01.10.2012 / 15:27