Windows 10 SSH 客户端:无密码访问

Windows 10 SSH 客户端:无密码访问

我只想使用 Windows 10 内置的 SSH 客户端 -没有叮当声,没有腻子

我可以轻松使用登录到我的服务器

$ ssh user@server

但它总是要求我输入密码。使用私钥时

$ ssh user@server -i %USERPROFILE%\.ssh\id_rsa

它还要求我输入密码。Windows SSH 客户端是否能够将凭据存储在 macOS 等钥匙串中的某个位置?

答案1

作为 Thomas S. 的回答的补充,我发现了一种方法,即使在重新启动后,Windows 也可以记住密码。这使用 PowerShell。

在提升的 PowerShell 会话中运行此操作(以管理员身份运行):

Get-Service ssh-agent | Set-Service -StartupType Automatic -PassThru | Start-Service

(或者如果您知道如何操作,您也可以使用 GUI 来执行此操作。它基本上可以使 ssh-agent 自动启动。)

Git 可选

为了让 Git 识别所有这些设置,您需要告诉 Git 使用内部 OpenSSH 而不是其自己的 OpenSSH。(是的,对于 Git 来说,现在有两个 OpenSSH 实例)

git config --global core.sshCommand C:/Windows/System32/OpenSSH/ssh.exe

(在此路径中使用正斜杠/或双反斜杠)\\

通过这样做,Git(包括所有 Git 客户端)也可以访问存储的密码。

来源:https://github.com/dahlbyk/posh-git/issues/640#issuecomment-435515055

答案2

  • 确保安装了可选的 Windows 功能“OpenSSH 客户端”
  • 确保服务“OpenSSH 身份验证代理”至少具有“手动”启动类型(默认情况下:禁用)
  • 启动服务,例如通过调用ssh-agent (如果您收到输出“无法启动 ssh-agent 服务,错误:1058”,则该服务很可能处于“禁用”状态)
  • 告诉它有关私钥文件的信息:ssh-add <path-to-private-key-file>
  • 现在ssh user@server无需输入密码即可工作

不幸的是,我还没有找到让它在重启后记住私钥和密码的方法。

答案3

无需密码即可生成密钥

...> ssh-keygen

然后确保公钥放在目标机器的 .ssh 目录下的 authorized_keys 文件中。我手动完成了这个操作。我不记得具体细节了,我使用了许多在线示例之一来说明如何执行此操作

然后当你跑

...> ssh -i <private_key_file> squidward@bikinibottom

系统不会提示你输入密码

相关内容