ssh-add retorna “Erro ao conectar ao agente: arquivo ou diretório inexistente” mesmo que o agente esteja em execução

ssh-add retorna “Erro ao conectar ao agente: arquivo ou diretório inexistente” mesmo que o agente esteja em execução

Windows 10 20H2, compilação 19042.685

Estou tentando usar o agente SSH no cliente OpenSSH integrado no Windows 10. O agente está em execução:

C:\Users\Daniel> Get-Service | ?{$_.Name -like '*ssh-agent*'}

Status   Name               DisplayName
------   ----               -----------
Running  ssh-agent          OpenSSH Authentication Agent

No entanto, ssh-addainda está gerando o mesmo erro:

C:\Users\Daniel> ssh-add C:\Users\Daniel\.ssh\id_ed25519
Error connecting to agent: No such file or directory

Alguma ideia?

Responder1

Descobri que algo no Windows10 está definindo o caminho para o agente ssh como um env-var, mas não consigo lidar com espaços nos nomes das pastas. Alguém se esqueceu de escapar de suas entradas! (AAAAAAARRRRGGGGH!).

Para testar: (no git-bash, que estou usando atualmente)

echo "$(ssh-agent)"

... fornece o que seu ambiente configurou (no meu caso: estupidamente) sobre como ele encontrará/acessará o ssh-agent. Eu obtive:

SSH_AUTH_SOCK=/d/Windows10 Temporary Files/ssh-XXXXXXX/agent.YYYYY; export SSH_AUTH_SOCK;
SSH_AGENT_PID=54456; export SSH_AGENT_PID;
echo Agent pid 54456;

...Veja! Alguém esqueceu que as pastas podem ter espaços e não se preocupou em escapar de suas entradas (a primeira linha está corrompida, inclui o comando "exportar").

Reexportar essa variável de ambiente corretamente (coloque "/d/...YYYY" entre aspas simples, remova o ";" final e remova a parte "exportar SSH_AUTH_SOCK;") faz com que o ssh-agent funcione corretamente novamente.

informação relacionada