我正在使用 Vagrant 来启动多 VM 环境(VirtualBox Hostonly 模式)。每个 VM 都启用了 ssh 代理转发。作为“流浪”用户,我可以连接到我的 Bitbucket 帐户并从 VM 中检出存储库。以下是相关的控制台日志:
[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 也有一个用户,“go”。当我以“go”身份登录并尝试连接到 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"
因此,当“vagrant” sudo 进入“go”时,ssh-agent 连接应该被转发。我在这里想念什么?
主机是 Mac OS X 10.8,而虚拟机是 CentOS 6.5 机器。
谢谢!