ssh-add devuelve "Error al conectar con el agente: no existe tal archivo o directorio" aunque el agente se esté ejecutando

ssh-add devuelve "Error al conectar con el agente: no existe tal archivo o directorio" aunque el agente se esté ejecutando

Windows 10 20H2, compilación 19042.685

Estoy intentando utilizar el agente SSH en el cliente OpenSSH integrado en Windows 10. El agente se está ejecutando:

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

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

Sin embargo, ssh-addsigue arrojando el mismo error:

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

¿Algunas ideas?

Respuesta1

Descubrí que algo en Windows10 está configurando la ruta al ssh-agent como env-var, pero no puede soportar espacios en los nombres de las carpetas. ¡Alguien se olvidó de escapar de sus entradas! (¡AAAAAAAARRRRGGGGH!).

Para probar: (en git-bash, que estoy usando actualmente)

echo "$(ssh-agent)"

... proporciona lo que su entorno ha configurado (en mi caso: estúpidamente) sobre cómo encontrará/accederá a ssh-agent. Obtuve:

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;

...¡Oh mira! Alguien olvidó que las carpetas pueden tener espacios y no se molestó en escapar de sus entradas (la primera línea está corrupta, incluye el comando "exportar").

Volver a exportar esa variable de entorno correctamente (envuelva "/d/...YYYY" con comillas simples, elimine el ";" final y elimine la parte "exportar SSH_AUTH_SOCK;") hace que ssh-agent vuelva a funcionar correctamente.

información relacionada