Vagrant中的SSH代理转发

时间:2014-05-25 19:13:46

标签: vagrant ssh-agent

我正在使用Vagrant来启动多VM环境(VirtualBox Hostonly模式)。每个VM都启用了ssh代理转发。 作为" vagrant"用户,我能够从VM中连接到我的Bitbucket帐户和结帐存储库。以下是相关的控制台日志:

[vagrant@ci-server ~]$ echo $SSH_AUTH_SOCK 
/tmp/ssh-BtewZz3383/agent.3383

[vagrant@ci-server ~]$ ssh -T git@bitbucket.org
logged in as <my-bitbucket-account>.

You can use git or hg to connect to Bitbucket. Shell access is disabled.
[vagrant@ci-server ~]$

每个VM也有一个用户,&#34; go&#34;。当我以&#34;登录&#34;并尝试连接到Bitbucket,它会抛出一个错误。甚至没有设置SSH_AUTH_SOCK:

[vagrant@ci-server ~]$ sudo su - go

[go@ci-server ~]$ echo $SSH_AUTH_SOCK

[go@ci-server ~]$ ssh -T git@bitbucket.org
Permission denied (publickey).
[go@ci-server ~]$ 

sudoers文件有:

Defaults    env_keep += "SSH_AUTH_SOCK"

因此,ssh-agent连接应该在&#34; vagrant&#34; sudos into&#34; go&#34;。我在这里缺少什么?

主机是Mac OS X 10.8,而虚拟机是CentOS 6.5盒。

谢谢!

1 个答案:

答案 0 :(得分:0)

  

因此,当“流浪汉”暴徒进入“去”时,ssh-agent连接应该得到解决。我在这里缺少什么?

您正在使用sudosu -,这是:

  1. 过度杀伤,因为仅sudo就可以胜任;
  2. 错误,因为su -重置了您的环境,删除了您需要的SSH_AUTH_SOCK变量。
  3. 尝试仅使用sudo --shell --user=go获取该用户的shell。