如何使用“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 

http://vagrantup.com/v1/docs/config/ssh/forward_agent.html

我在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 
  1. config.ssh.private_key_path是你的本地私钥
  2. 您的私钥必须可供本地ssh-agent使用。 你可以用ssh-add -L来检查,如果没有列出,用ssh-add ~/.ssh/id_rsa
  3. 不要忘记在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代理转发工作。