通过 ssh 在他们的机器上以另一个用户身份运行命令?

通过 ssh 在他们的机器上以另一个用户身份运行命令?

作为我正常工作流程的一部分,我通过 ssh 进入另一个用户的机器,将用户切换到他们,运行命令,然后再次退出到我自己的机器:

ssh hostname
sudo su user
runcommand
exit
exit

有没有办法把它缩短为一行命令?例如

ssh --someflags "runcommand"

我尝试过这个但是系统提示我输入其他用户的密码,而我没有这个密码:

sudo ssh user@hostnme "runcommand"

答案1

您是否在所有远程计算机上都有用户?我想这应该可行,但我不确定我是否正确理解了您的设置。

ssh 你的用户@主机名 “sudo -u 远程用户运行命令”

答案2

通常情况下,终端也是必需的。在这种情况下,以下内容应该有效:

commands='cd myfolder;ls -l'

ssh -ttt "youruser@remotehost" "sudo -u remoteuser sh -c ${commands}"

相关内容