作为我正常工作流程的一部分,我通过 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}"