Windows 10 上的 ssh 代理转发

Windows 10 上的 ssh 代理转发

当我从AgentForwarding启用了 ssh 的 macOS 客户端进入 Windows 10 主机时,我无法访问主机上的客户端密钥。

Windows主机上内置的OpenSSH服务器已AllowAgentForwarding启用。

另外,当我通过 ssh 进入其他(非 Windows)主机时,代理转发也能正常工作。

我是否缺少一些特殊技巧来使代理转发在 Windows 主机上运行,​​或者是什么原因导致它无法运行。

调试日志至少似乎表明它正在尝试连接代理:

debug1: active: key options: agent-forwarding port-forwarding pty user-rc x11-forwarding
debug1: server_input_channel_req: channel 0 request auth-agent [email protected] reply 0
debug1: session_input_channel_req: session 0 req [email protected]

答案1

SSH 代理转发不包含在 Windows OpenSSH 项目的原始工作范围中(请参阅项目范围wiki 页面中将此功能称为“身份验证转发”。

不过,这个功能似乎将在未来的版本中得到解决。下一个里程碑包括对代理转发问题的几处引用:

答案2

在 Windows 11 上,至少可以使用 SSH 代理转发,但您需要运行 ssh 身份验证代理:

  1. 从开始菜单打开‘服务’应用程序。
  2. 向下滚动到“OpenSSH 身份验证代理”。
  3. 右键单击该服务以访问其“属性”。将其“启动类型”更改为“自动(延迟启动)”。单击“确定”保存更改。
  4. 右键单击该服务并从上下文菜单中选择“启动”。

答案3

SSH-Agent 在 Windows 上默认是禁用的。

[OpenSSH 密钥管理][1] 文章

# By default the ssh-agent service is disabled. Allow it to be manually started for the next step to work.
# Make sure you're running [Powershell] as an Administrator.
Get-Service ssh-agent | Set-Service -StartupType Manual

# Start the service
Start-Service ssh-agent

# This should return a status of Running
Get-Service ssh-agent

# Now load your key files into ssh-agent
ssh-add ~\.ssh\id_ed25519

相关内容