我在使用 ssh 时遇到错误,它尝试使用 ssh-agent 中的密钥,但失败并显示此消息(运行时
ssh -v
):
debug1: get_agent_identities: ssh_fetch_identitylist: communication with agent failed
运行时我可以看到我的两个密钥都添加到了代理中
ssh-add -l
:
$ ssh-add -l
3072 SHA256:0i3sqR60WRsAOpFVJyw951NUDW01jkAWFB1na921Asd xxxxxx@somehost (RSA)
4096 SHA256:CG6njka821AOd82j1xGFkyiOjwG/yo921KAIOWm3t/4 xxxxxx@anotherhost (RSA)
代理内没有钥匙或一把钥匙时也会出现相同的错误。
我在Archlinux上运行fish shell,也在bash下尝试过这个,但似乎没有什么区别。同样的设置在 Ubuntu 上也适用于我。对于这个确切的问题似乎没有任何疑问,我也没有任何线索。
我发现我的电脑上的这个问题是由存储我的 ssh 密钥文件的 Windows 默认 ssh 客户端引起的。使用 https://github.com/PowerShell/Win32-OpenSSH/releases/tag/v8.9.0.0p1-Beta 升级到 8.9 后,我解决了这个问题。
您还可以使用 OpenSSH Windows 版本的测试版通道。
在具有管理员权限的 powershell 中:
Remove-WindowsCapability -Online -Name OpenSSH.Client
winget install Microsoft.OpenSSH.Beta --override ADDLOCAL=Client
然后重新启动您的 Windows 代理。 这将在程序文件中安装并使用新版本的 OpenSSH。