Você não precisa executar ssh-add
ou ssh-agent
no seu servidor.
Você deve executar ssh-agent
no seu cliente ( varga
). Isso criará um soquete para o programa ssh
verificar uma chave desbloqueada. ssh-agent
imprimirá algumas variáveis de ambiente que você terá que definir - normalmente você faz isso com eval $(ssh-agent)
, que inicia o agente e exporta todas as variáveis necessárias.
Como posso ver na sua pergunta, ssh-add
pede uma senha e adiciona a chave ao agente, o que significa que o agente está em execução e todas essas variáveis são exportadas (pelo menos no shell que você está usando para executar %código%). Mas agora para fazer ssh-add
ver o agente, você tem que se certificar de que essas variáveis também são exportadas na sessão em que você executa ssh
.
O fato de que ssh
não está pedindo a senha quando você a executa no servidor significa que o agente está sendo executado no servidor (você não precisa dele) e simplesmente não há chaves para adicionar, por isso sai silenciosamente.
Por que ssh-add
no cliente está solicitando a senha? Provavelmente porque você adicionou uma chave errada ao agente. Tem certeza de que você pode efetuar login no servidor usando o arquivo-chave ? Você tem certeza de que quando você tenta fazer o login ele está pedindo a senha do arquivo-chave , e não uma senha de usuário normal? Certifique-se de que a autenticação por chave eletrônica esteja funcionando primeiro.