如何使用“stream浪ssh”ssh代理转发?
我不想在stream浪盒子上创build一个新的SSH密钥对,而是想通过代理转发来重新使用我的主机上的密钥对。 我已经尝试在Vagrantfile中将config.ssh.forward_agent设置为TRUE,然后重新启动VM,然后尝试使用:
vagrant ssh -- -A
…但是当我尝试做一个git checkout时,我仍然被提示input密码。 任何想法我失踪?
将它添加到Vagrantfile
Vagrant::Config.run do |config| # stuff config.ssh.forward_agent = true end
我在OS X 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_key_path
是你的本地私钥 - 您的私钥必须可供本地ssh-agent使用。 你可以用
ssh-add -L
来检查,如果没有列出,用ssh-add ~/.ssh/id_rsa
- 不要忘记在Vagrant虚拟机上添加公钥给
~/.ssh/authorized_keys
。 你可以做它的复制和粘贴或使用像ssh-copy-id这样的工具
除了在vagrant文件中join“config.ssh.forward_agent = true”之外,还要确保主机是为代理转发而设置的。 Github为此提供了一个很好的指导 。 (查看故障排除部分)。
我在1.4.3上面做了上面的回复,但是在1.5上停止了。 我现在必须运行ssh-add
才能完全使用1.5。
现在,我将以下行添加到我的可靠configuration脚本中。 - name: Make sure ssk keys are passed to guest. local_action: command ssh-add
我也创build了一个我的设置的要点: https : //gist.github.com/KyleJamesWalker/9538912
如果你在Windows上,默认情况下(由于net-ssh中的错误),在Vagrant中的SSH转发不能正常工作。 看到这个特定的stream浪者错误报告: https : //github.com/mitchellh/vagrant/issues/1735
但是,有一个解决方法! 只需在VagrantFile中通过简单的configuration脚本自动将本地SSH密钥复制到Vagrant VM。 这是一个例子: https : //github.com/mitchellh/vagrant/issues/1735#issuecomment-25640783
当我们最近尝试使用Vagrant 1.1.5的vagrant-aws
插件时,我们遇到了SSH代理转发问题。 事实certificate,stream浪只是迫使IdentitiesOnly=yes
没有一个选项改变为no
。 这迫使Vagrant只查看我们在AWS提供商的Vagrantfile
列出的Vagrantfile
。
我在博客文章中写下了我们的经验。 它可能会在某个时候变成拉取请求。
真正的问题是Vagrant使用127.0.0.1:2222作为默认的端口转发。 你可以添加一个(不是2222,2222已经被默认占用)
config.vm.network“forwarded_port”,guest:22,host:2333,host_ip:“0.0.0.0”
“0.0.0.0”是从外部连接请求的方式。 那么ssh -p 2333 vagrant@192.168.2.101(改成你自己的主机ip地址,dud)会工作得很好。 谢谢,叫我雷锋!
确保虚拟机不启动自己的SSH代理。 我在~/.profile
有这个行
eval `ssh-agent`
删除后,SSH代理转发工作。