场景:
我在本地PC上运行ssh-agent,并且所有服务器/客户端均设置为转发SSH代理身份验证。我可以使用本地PC上的ssh-agent在所有机器之间切换。那个有效。
我需要能够以自己的身份(user1)SSH到计算机,更改为另一个名为user2的用户(sudo -i -u user2),然后使用我在本地PC上运行的ssh-agent ssh到另一个机器。可以说我想做类似ssh user3 @ machine2的操作(假设user3在他们的authorized_keys文件中有我的公共SSH密钥)。
我已将sudo配置为保留SSH_AUTH_SOCK环境变量。
所有涉及的用户(user [1-3])都是非特权用户(不是root)。
问题:
当我更改为另一个用户时,即使正确设置了SSH_AUTH_SOCK变量,(将其设置为:/tmp/ssh-HbKVFL7799/agent.13799),user2也无法访问user1创建的套接字-哪个当然这是有道理的,否则user2可以劫持user1的私钥并以该用户身份跳来跳去。
如果我不是通过user2的sudo获取外壳,而是通过root的sudo获取shell,则此方案很好用。因为root自然可以访问计算机上的所有文件。
问题:
最好使用sudo,如何从user1更改为user2,但仍然可以访问user1的SSH_AUTH_SOCK?