我正在使用 Windows 10 (1909) 的“OpenSSH 身份验证代理”( net start ssh-agent
)。我使用 添加密钥ssh-add.exe
,但我想知道为什么这些密钥在重新启动我的机器后仍然处于活动状态:
C:\> ssh-add -l
2048 SHA256:... bersbers (RSA)
我曾尝试使用-t
参数来至少限制时间,但随后出现错误communication with agent failed
,而添加时无需操作即可正常工作-t
:
C:\>ssh-add -t 24h bersbers.openssh
Enter passphrase for bersbers.openssh:
Could not add identity "bersbers.openssh": communication with agent failed
C:\>ssh-add bersbers.openssh
Enter passphrase for bersbers.openssh:
Identity added: bersbers.openssh (bersbers)
这是我正在使用的 SSH 版本:
C:\>ssh -V
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
答案1
我开始觉得这是不可能的。我在 Win32-OpenSSH wiki 中发现了这个隐藏得很好的东西:
ssh-agent 仅支持 '-l' '-L' 'd' 和 '-D' 选项。它忽略 ssh-add 的 '-c' 和 '-t' 选项。它持久且永久地存储用户的私钥。
https://github.com/PowerShell/Win32-OpenSSH/wiki/Various-Considerations
这两个限制都作为问题在这里进行了讨论:
答案2
您可以添加
ssh-添加-D
到您的“启动”脚本,以便清除在之前的会话中添加到您的环境中的所有密钥,并且您每次都从一张干净的纸开始。