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

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

Instalei o openSSH como parte da distribuição cygwin mais recente. Meu objetivo é usar o agente ssh do console da janela nativa (cmd) para fazer login sem senha em várias máquinas Linux.

Eu gerei as chaves e as carreguei nos diretórios apropriados nos hosts remotos e tudo funciona bem.

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

para sua informação: estou abrindo o cmd como um argumento para o ssh-agent: 'ssh-agent cmd'

Responder1

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

Você pode encontrá-lo aqui:https://github.com/raeesbhatti/ssh-agent-helper

Responder2

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

Dito isto, nas "janelas" do Cygwin bash, você precisa salvar a saída do ssh-agent em um arquivo e, em seguida, inserir esse arquivo em qualquer um dos scripts de login onde deseja usar as credenciais 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

Todas as "janelas" e processos filhos iniciados após a . your_save_fileexecução do comando poderão usar as credenciais armazenadas em cache no ssh-agent. Sempre que o agente ssh for interrompido ou eliminado, ou após a reinicialização do sistema, você precisará executar o primeiro conjunto de comandos novamente. Se você estiver em dúvida se as credenciais armazenadas em cache estão disponíveis ou não em um shell específico, execute

$ ssh-add -l            # Show list of loaded keys in ssh-agent

informação relacionada