例えば以下のように、SSHでログインした後にsudoでroot権限でコマンドを使う場合を考えます。

ホストOS ==(1)SSH==> ゲストOS vagrantユーザー ==(2)sudo==> ゲストOS rootユーザー

(1)のSSHした後もホストOSの秘密鍵を引き継ぐためには、~/.ssh/configのゲストOS vagrantユーザーでのログインのセクションにForwardAgent yesを追加すればよいです。

また(2)のsudo後に秘密鍵を引き継ぐためには、/etc/sudoersDefaults env_keep += "SSH_AUTH_SOCK"を追加すればよいです。

どちらもssh-add -lコマンドで、現在利用できる秘密鍵を確認できます。

現在以下の様な場合で煮詰まっています。

ホストOS ==(1)SSH==> ゲストOS vagrantユーザー ==(3)sudo -u someuser==> ゲストOS someuserユーザー

この(3)の場合、sudo -u someuser ssh-add -lを行ってももとのvagrantユーザーで使っている秘密鍵(=ホストOSの秘密鍵)は表示されず、出力はCould not open a connection to your authentication agent.となります。

sudoにてroot以外のユーザーの権限でコマンドを実行する場合、秘密鍵を引き継ぐ方法はあるのでしょうか?