如何使用Windows 10的新OpenSSH和PowerShell维护ssh-agent登录会话


18

在我的Ubuntu计算机上,我仅使用Keychain来维护一个ssh-agent并保持登录状态。

我现在想要与Windows相似的东西,因为它本身已包含OpenSSH。我使用的是带有知名if [ -z "$SSH_AUTH_SOCK" ] ; then ...脚本的Git Bash,但是这导致许多ssh代理被打开,我知道建议这样做(部分原因是此博客文章:http : //rabexc.org/posts/pitfalls-of-ssh -agents)-这就是让我获得Ubuntu钥匙串的原因。不再使用此功能的另一个原因是,我将PowerShell用作主外壳。

但是我不确定如何在Windows上特别是使用PowerShellWin32-OpenSSH实现相同的功能。

谢谢!

Answers:


13

您必须将OpenSSH身份验证代理服务配置为自动启动(或者您可以在首次打开Powershell时每次手动启动它:Start-Service ssh-agent)。

之后,ssh-add C:\path\to\your\ssh\key\id_rsa只需要一次。之后,每次启动ssh-agent时,密钥就在那里。您可以通过进行确认ssh-add -l

编辑:要让SSH代理自动从Windows启动,您可以Set-Service ssh-agent -StartupType Automatic在超级用户powershell提示符下运行。


您能否添加有关如何使ssh-agent自动启动的详细信息?
马克·沃恩

@MarkWoon我刚刚编辑了答案。
Davi Koscianski Vidal

2
这似乎不起作用-Set-Service没有明显作用,而手动Start-Service在启动某些操作时也无效-任何ssh-add命令此后都会失败,并显示“与代理通信失败”。 。
多德

1
*在开始菜单中搜索“服务” *双击“ OpenSSH身份验证代理” *将启动类型设置为“自动” *单击“开始” *单击“确定并退出” * *现在转到PowerShell并使用“ ssh”添加密钥-add“ *之后,代理将在您需要时记住您的密钥:)
Esben Andersen

0

不是一个完整的答案,但仍然是解决我的问题的解决方案。(我在这里还看到另一个人的评论,似乎是同样的问题。)

如果您拥有适用于Windows的Git或MinGW或其他可能将GNU实用程序添加到Windows路径的工具,则可能会干扰Windows的OpenSSH二进制文件。对我来说,我必须从PATH环境变量中删除ProgramFiles / Git / bin,然后重新启动PowerShell,以使其正常工作。在此之前,我遇到“与座席沟通失败”的问题

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.