意图 :能够从任何开发环境部署到lan-example.com ; 无论是直接来自虚拟操作系统,还是任何单一操作系统,甚至是使用存储在Keepass中的一个SSH密钥的互联网。 我目前无法从Vagrant的操作系统中这样做,除非我明确生成自己的密钥并在每个部署服务器中对其进行授权。 我相信通过用户代理转发来做我想做的事情的方式,是的?
主机操作系统
C:\Users\Administrator\.ssh\id_rsa.ppk C:\ Users \用户Administrator.ssh \ CONFIG
Host 192.168.55.2 ForwardAgent yes
Vagrantfile
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)
/home/vagrant/.ssh没有SSH密钥(我删除了它们)。 目的是让用户代理通过主机操作系统(Keeagent)转发来处理使用密钥 局域网主机(内网网站)
lan-example.com 问题:
什么工作(使用主机操作系统):腻子,连接到lan-example.com而不需要明确引用SSH密钥。
什么不起作用(使用来宾操作系统): ssh -v [email protected]因为它显示没有任何键使用。
我已经注意到Keeagent的testing版本,它允许我设置SSH_AUTH_SOCK。 我这样做了,并设置了一个NFS共享,允许来宾操作系统读取文件; 然而这并没有改变任何东西。 代理转发如何在这种types的环境中工作? Windows有什么不同,导致它失败?
通过networking文件系统共享套接字文件将不起作用,因为Windows套接字和Linux套接字是完全不同的野兽 – VM内的Linux不知道如何使用Windows套接字。 为了确保虚拟机可以在主机上使用身份validation代理,需要在ssh客户端和服务器上启用代理转发,然后通过主机ssh进入虚拟机(不能直接在VM控制台上login)。
假设:
在puttyconfiguration文件设置下,勾选Connection→SSH→Auth下的“允许代理转发”,以打开客户端的代理转发。 另外,如果在主机上使用Cygwin ssh,那么有两个select:
~/.profile之类)。 $SSH_AUTH_SOCKvariables设置为相应的位置。 要检查代理转发是否正常,请ssh进入VM并检查variables$SSH_AUTH_SOCK 。 如果它非空,并指向一个存在的Linux套接字文件,那么一切都应该是没有问题的。 如果这个variables是空的,那么缺less一些东西。