
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 的路徑設為 env-var,但無法處理資料夾名稱中的空格。有人忘記轉義他們的輸入! (啊啊啊啊啊啊!)。
測試:(在我目前正在使用的 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 再次正常工作。