エージェントフォワードを有効にした状態で、とあるサーバ(A)にログインするとする。
次にサーバ(A)からサーバ(B)にsshで入るとする:
ssh root@server(B)
これは成功する。次にサーバ(A)において、sudoでrootになってからサーバ(B)にログインを試みると失敗する:
sudo bash
ssh root@server(B)
理由は、sudoがセキュリティ上の理由から元のユーザのenv情報を引き継がないため。
対策は次のようにする:
visudo
Defaults env_keep += SSH_AUTH_SOCK
を追加:
Defaults env_reset
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
+ Defaults env_keep += SSH_AUTH_SOCK