Vagrant 流浪汉中的SSH代理转发

Vagrant 流浪汉中的SSH代理转发,vagrant,ssh-agent,Vagrant,Ssh Agent,我正在使用Vagrant启动一个多VM环境(VirtualBox Hostonly模式)。每个VM都启用了ssh代理转发。 作为“流浪”用户,我能够从虚拟机内连接到我的Bitbucket帐户和签出存储库。以下是相关的控制台日志: [vagrant@ci-server ~]$ echo $SSH_AUTH_SOCK /tmp/ssh-BtewZz3383/agent.3383 [vagrant@ci-server ~]$ ssh -T git@bitbucket.org logged in a

我正在使用Vagrant启动一个多VM环境(VirtualBox Hostonly模式)。每个VM都启用了ssh代理转发。 作为“流浪”用户,我能够从虚拟机内连接到我的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 ~]$
sudoers文件具有:

Defaults    env_keep += "SSH_AUTH_SOCK"
所以,当“流浪”SUDO进入“go”时,ssh代理连接应该被删除。我错过了什么

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

谢谢

所以,当“流浪”SUDO进入“go”时,ssh代理连接应该被删除。我错过了什么

您正在同时使用
sudo
su-
,这是:

  • 过度杀戮,因为只有sudo能完成任务
  • 错误,因为
    su-
    重置您的环境,删除您需要的SSH\u AUTH\u SOCK变量

  • 尝试仅使用
    sudo--shell--user=go
    来获取作为该用户的shell。

    您不需要使用
    vagrant
    帐户中的密钥文件,并确保在
    go
    帐户中设置了
    SSH\u AUTH\u SOCK
    环境变量吗?为什么要这样做?为什么不简单地为go帐户配置Bitbucket部署密钥?这就是我配置Go CD服务器的方式。
    Defaults    env_keep += "SSH_AUTH_SOCK"