0

Vagrant を使用してマルチ VM 環境 (VirtualBox Hostonly モード) を起動しています。各 VM で ssh エージェント転送が有効になっています。「vagrant」ユーザーとして、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」が「go」に sudo するときに、ssh-agent 接続が転送されるはずです。ここで何が欠けていますか?

ホストは Mac OS X 10.8 で、VM は CentOS 6.5 ボックスです。

ありがとう!

4

1 に答える 1

0

そのため、「vagrant」が「go」に sudo するときに、ssh-agent 接続が転送されるはずです。ここで何が欠けていますか?

sudoと をsu -一緒に使用しています。これは次のとおりです。

  1. sudo一人で仕事をするのでやり過ぎ。
  2. su -環境をリセットし、必要な SSH_AUTH_SOCK 変数を消去するため、悪いです。

sudo --shell --user=goそのユーザーとしてシェルを取得するためだけに使用してみてください。

于 2015-07-29T07:51:10.363 に答える