ssh-add 不允许添加或删除任何密钥

ssh-add 不允许添加或删除任何密钥

我使用的是 Windows 10 v20H2,带有 OpenSSH_for_Windows_8.1p1、LibreSSL 3.0.2。ssh-agent 服务正在运行,但我无法让 ssh-add 执行任何有用的操作。我最初确实添加了一个密钥,似乎被接受了,但从未起作用。现在 ssh-add 中似乎什么都不起作用了。

> where.exe ssh-add
C:\Windows\System32\OpenSSH\ssh-add.exe

> ssh-add -v .\id_rsa
Enter passphrase for .\id_rsa:
Could not add identity ".\id_rsa": invalid format

> ssh-add -l
error fetching identities: invalid format

> ssh-add -D
Failed to remove all identities.

如果我在提升的 Powershell 中使用不同的帐户运行,那么它似乎可以正常工作:

PS C:\> ssh-add -l
The agent has no identities.

我相信密钥是可以的,因为当我使用 -i 参数将其直接传递给 ssh 时它可以工作,但我也尝试了许多不同的密钥变体。

请注意,这是在一个相当锁定的工作系统上,因此可能会有一些意外的组策略生效。

无奈之下,我直接从注册表中删除了最初添加的单个键(在 SOFTWARE\OpenSSH\Agent\Keys 中),但相同的错误消息仍然存在。我正在寻找下一步该尝试的建议。

答案1

在看到类似问题的建议后https://github.com/PowerShell/Win32-OpenSSH/issues/1454#issuecomment-533305642set在命令提示符下运行,发现意外设置了 SSH_AUTH_SOCK。我还安装了 Git Bash,因此 ssh-agent 与 Windows 上的 ssh-agent 冲突。

从我的环境变量中删除 SSH_AUTH_SOCK 和 SSH_AGENT_PID 后,一切都按预期工作。

相关内容