如何使用ssh代理转发;流浪汉;?
我不想在一个vagrant box上创建一个新的SSH密钥对,而是想重新使用主机上的密钥对,使用。我已尝试在Vagrant文件中设置为TRUE,然后重新启动VM,并尝试使用:如何使用ssh代理转发;流浪汉;?,ssh,virtualbox,forwarding,ssh-keys,vagrant,Ssh,Virtualbox,Forwarding,Ssh Keys,Vagrant,我不想在一个vagrant box上创建一个新的SSH密钥对,而是想重新使用主机上的密钥对,使用。我已尝试在Vagrant文件中设置为TRUE,然后重新启动VM,并尝试使用: vagrant ssh -- -A …但当我尝试进行git签出时,仍然会提示我输入密码。知道我遗漏了什么吗?将其添加到Vagrant文件中 Vagrant::Config.run do |config| # stuff config.ssh.forward_agent = true end 最近,我们在va
vagrant ssh -- -A
…但当我尝试进行git签出时,仍然会提示我输入密码。知道我遗漏了什么吗?将其添加到Vagrant文件中
Vagrant::Config.run do |config|
# stuff
config.ssh.forward_agent = true
end
最近,我们在vagrant 1.1.5中试用了
vagrant aws
插件时,遇到了SSH代理转发问题。事实证明,Vagrant正在强制identiesonly=yes
而没有将其更改为no
。这迫使Vagrant只能查看我们在AWS提供商的Vagrant文件中列出的私钥
我把我们的经历写在日记里。在某个时候,它可能会变成一个拉取请求。我正在OSX Mountain Lion上使用vagrant 2
Vagrant.configure("2") do |config|
config.ssh.private_key_path = "~/.ssh/id_rsa"
config.ssh.forward_agent = true
end
config.ssh.private\u key\u path
是您的本地私钥
您的私钥必须可用于本地ssh代理。您可以使用ssh add-L
进行检查,如果未列出,请使用ssh add~/.ssh/id\u rsa
别忘了将您的公钥添加到Vagrant VM上的~/.ssh/authorized_keys
。您可以通过复制、粘贴或使用类似
除了将“config.ssh.forward_agent=true”添加到vagrant文件之外,还要确保主机已设置为代理转发。Github为此提供了一个解决方案。(查看故障排除部分)。我在1.4.3中使用了上述回复,但在1.5中停止了使用。我现在必须运行ssh add
,才能完全使用1.5
现在,我将以下行添加到我的ansible配置脚本中。
-名称:确保ssk密钥已传递给来宾。
本地操作:命令ssh add
我还创建了一个设置要点:如果您在Windows上,Vagrant中的SSH转发在默认情况下无法正常工作(因为NetSSH中有一个bug)。请参阅此特定的流浪虫报告:
然而,有一个解决办法!只需通过Vagrant文件中的简单配置脚本将本地SSH密钥自动复制到Vagrant VM即可。下面是一个例子:
真正的问题是使用127.0.0.1:2222作为默认端口转发的流浪汉。
您可以添加一个(不是2222,默认情况下2222已被占用)
config.vm.network“转发的\u端口”,来宾:22,主机:2333,主机ip:“0.0.0.0”
“0.0.0.0”是从外部连接获取请求的方式。
然后
ssh-p2333vagrant@192.168.2.101(更改您自己的主机ip地址,dud)
你会工作得很好的。
谢谢我,就叫我雷锋吧 确保VM不会启动自己的SSH代理。我的~/.profile
eval `ssh-agent`
删除它后,SSH代理转发工作正常。在Windows上,问题是Vagrant不知道如何与git bash的SSH代理通信。然而,它确实知道如何使用PuTTY的选美比赛。因此,只要Pageant正在运行并加载了您的SSH密钥,并且设置了config.SSH.forward\u代理,就应该可以工作
有关详细信息,请参阅
如果使用Pageant,则不再需要。确保在基础主机上添加ssh并解密密钥。请注意,Windows不会自动启动ssh代理,转发ssh密钥时需要运行ssh代理。接下来在Windows上安装ssh代理自动启动。这个答案可能不值得这么多人投票。OP明确指出他们在配置文件中添加了config.ssh.forward\u agent
,那么这个答案提供了什么新信息呢?连链接都已经在问题中了。@Trindaz你完全正确。我无法解释为什么这是我最流行的答案之一。然而,这似乎至少帮助了52个人,所以我不得不称之为胜利。这个答案确实没有带来任何新的信息,但另一方面,它是需要为流浪者配置的机器配置的一切。至少如果您在连接机器上正确设置了代理转发(即,转发适用于其他非漫游机器)。是否有办法在使用vagrant up
创建时自动将主机上的底层公钥复制到漫游VM?现在我必须创建机器,手动登录,然后将我的公钥添加到/home/vagrant/.ssh/authorized_keys。我注意到,在我进行上述设置后,我可以使用“vagrant”用户来“git clone”,但不能使用“root”用户来“git clone”。你知道问题出在哪里吗?感谢config.ssh.private\u key\u path=“~/.ssh/id\u rsa”
使Vagrant挂起等待VM启动
。您还需要在OS X上保留Vagrant插入密钥config.ssh.private\u key\u path=['~/.Vagrant.d/unsecure\u private\u key','~/.ssh/id\u rsa'
,我发现使用ssh add-K
将私钥添加到OS X密钥链中是可行的(以及config.ssh.forward\u agent=true
)。我犯了和@apennebaker一样的错误。按照卡林建议的步骤做也无济于事。。。对我有效的方法是从我的主机操作系统向keychain添加密钥,并禁用config.ssh.private_key_路径分配。我一直必须在1.4和1.5中使用ssh add,否则就不会有要转发的代理运行。如果您没有正确的ssh密钥,git不应该询问密码,但会告诉您您拒绝了权限。我猜你被要求输入密码是因为你是从https而不是从https克隆的git@github.com(ssh)。我的2美分。