使用代理转发与 Windows 主机操作系统、Vagrant Ubuntu 客户操作系统和 Keepass/Keeagent 进行 SSH

使用代理转发与 Windows 主机操作系统、Vagrant Ubuntu 客户操作系统和 Keepass/Keeagent 进行 SSH

意图:能够lan-example.com从任何开发环境部署;无论是直接从虚拟操作系统还是任何单操作系统,甚至通过互联网使用存储在 Keepass 中的一个 SSH 密钥。我目前无法从 Vagrant 的操作系统中执行此操作,除非我明确生成自己的密钥并在我的每个部署服务器中授权它。我相信做我想要做的事情的方式是通过用户代理转发,对吗?


主机操作系统

  • Windows 7 x64
  • puttygen 生成的 SSH 密钥:C:\Users\Administrator\.ssh\id_rsa.ppk
  • Keepass 和 Keeagent 存储了我的 SSH 密钥。Keeagent 设置为“代理”模式
  • pageant.exe已安装但未运行
  • 如果我希望使用我的密钥连接到外部/内部 LAN 服务器,Putty 会遵从 Keeagent - Putty 不会在其配置中存储私钥位置。

C:\用户\管理员.ssh\config

Host 192.168.55.2
  ForwardAgent yes

Vagrant文​​件

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.network :private_network, ip: '192.168.55.2'
  config.ssh.forward_agent = true
  # Why would I need to set this if Keeagent is handling things?
  config.ssh.private_key_path = '~/.ssh/id_rsa_jake_mitchell.ppk'
end

客户操作系统 (Vagrant)

  • Ubuntu x64
  • 192.168.55.2,仅可通过主机访问
  • 不存在 SSH 密钥/home/vagrant/.ssh(我删除了它们)。目的是让通过主机操作系统(Keeagent)进行的用户代理转发负责使用密钥

LAN Web 主机(内部网网站)

  • 假设它的域名是lan-example.com
  • 它仅允许使用 id_rsa.ppk 公钥进行 SSH 无密码登录
  • 192.168.0.2
  • sshd 中启用了用户代理转发

问题:

lan-example.com有效的方法(使用主机操作系统):Putty,无需明确引用 SSH 密钥即可连接。

不起作用的是(使用客户操作系统):因为它显示没有任何可用的键。ssh -v [email protected]

我注意到了Keeagent 测试版允许我设置 SSH_AUTH_SOCK。我已经这样做了,并设置了一个允许客户操作系统读取文件的 NFS 共享;但是这并没有改变任何东西。代理转发在这种环境中如何工作?Windows 有什么不同导致此操作失败?

答案1

您需要从主机操作系统(在 Windows 上使用 PuTTY)进行 ssh 连接,并启用代理转发。然后从该会话中,从客户操作系统进行 ssh 连接服务器。

PuTTY 代理转发设置

相关内容