尽管代理正在运行,ssh-add 仍返回“连接到代理时出错:没有此文件或目录”

尽管代理正在运行,ssh-add 仍返回“连接到代理时出错:没有此文件或目录”

Windows 10 20H2,内部版本 19042.685

我正在尝试在 Windows 10 上的内置 OpenSSH 客户端中使用 SSH 代理。该代理正在运行:

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

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

然而,ssh-add仍然抛出同样的错误:

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

有任何想法吗?

答案1

我发现 Windows10 中的某些东西将 ssh-agent 的路径设置为环境变量,但无法处理文件夹名称中的空格。有人忘记转义他们的输入!(AAAAAAARRRRGGGGH!)。

测试:(在 git-bash 中,我目前正在使用)

echo "$(ssh-agent)"

...给出了你的环境如何设置(在我的情况下:愚蠢的)来查找/访问 ssh-agent。我得到了:

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;

...哦,看!有人忘记了文件夹可以有空格,并且没有费心转义他们的输入(第一行已损坏,它包含“导出”命令)。

正确地重新导出该环境变量(用单引号将“/d/...YYYY”括起来,删除尾随的“;”,并删除“export SSH_AUTH_SOCK;”部分)可使 ssh-agent 再次正常工作。

相关内容