我经常打开 SSH 隧道来访问远程机器上运行的服务:
/usr/bin/ssh -L portA:localhost:portB remote.host.com -N &
。我现在面临的问题是,与通常情况不同,我需要以其他用户身份访问该服务。当我通过 SSH 访问remote.host.com
并尝试使用 访问该服务时sudo -u userX localhost:portB
,一切正常,因为我对该用户拥有权限。
userX
在我的本地机器上不存在,我本质上想能够从我的本地机器直接访问远程主机上可以访问的所有内容。有什么办法吗?
PS:我可以使用 sudouserX
但没有他们的密码(也不应该有)。我希望更准确,但平心而论,我对 Linux 权限模型的理解有点模糊。
答案1
在本地机器上为 userX 生成密钥对 (ssh-keygen),通过 ssh 连接到远程服务器,并将公钥添加到授权密钥列表中。然后在 ssh 配置文件中使用 sudo,并取消注释允许的公钥身份验证。这样它就不应该询问密码了。
尽量不要把自己锁在外面。如果不确定,请先阅读一些文档。