su成别的用户后仍以原来私钥访问远程机器
背景:
同步机和游戏服两台机都有个人用户账号和游戏账号xy1,游戏服设了xy1的ssh强制命令来受同步机的xy1控制。现在需要在同步机上用xy1进行一个控制游戏服的操作,该操作需要在同步机远程tail -f游戏服上的一个输出文件,由于强制命令的存在,不能直接用xy1去远程tail -f,而要用游戏服的个人用户账号去tail -f(前提是游戏服的个人账号有访问那个输出文件的权限)
做法:
本地使用ssh -A登陆同步机时,会在同步机的/tmp目录下放一个保存私钥的目录,变量$SSH_AUTH_SOCK记录了该目录的位置,只要在.cshrc文件将$SSH_AUTH_SOCK记录的目录权限设为777,就可以su成xy1后也以原来的用户私钥去连游戏服。
1.修改同步机个人用户账号的.cshrc文件,结尾增加:
if ($?SSH_AUTH_SOCK) then
chmod -R 777 `dirname $SSH_AUTH_SOCK`
endif
2.登陆同步机后,su成root,再su成xy1(要su xy1,不能 su - xy1)
3.在su成xy1身份后,以原来个人用户账号登陆游戏服:
xy1% ssh -l andrew $GAMESERVER