SSH 代理转发与 su 用户混合 -

SSH 代理转发与 su 用户混合 -

如果我像这样 ssh 到我的服务器:

ssh root@<ip> -A

然后我远程执行以下操作:

ssh [email protected]
# Hi username! You've successfully authenticated

然后远程执行:

su user -

然后远程执行:

ssh [email protected]
# Permission denied (publickey).

我如何才能让它工作而不直接通过 SSH 连接到用户(因为我需要经常轻松地来回切换)

谢谢

答案1

这是意料之中的。发生的事情是,当您ssh -A在服务器上打开的用户会话中,SSH 代理中已加载的证书可用。然后,当您将用户更改为其他人时,使用su该权限是出于安全相关原因,而不是提供给目标用户。您通常想要做的是

  1. ssh -A user@ip或者
  2. 将私钥放在服务器上,通过 SSH 进入服务器并使用 加载密钥eval "$(ssh-agent)" && ssh-add

相关内容