我只想使用 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
系统不会提示你输入密码