通过ssh在其计算机上以另一个用户身份运行命令?


2

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

ssh hostname
sudo su user
runcommand
exit
exit

有没有办法将其减少为单行命令?例如

ssh --someflags "runcommand"

我试过这个但是被提示输入我没有的其他用户密码:

sudo ssh user@hostnme "runcommand"

就像是 ssh myaccount@somehost "su -u <user> -c <command>" 不行吗?
Fiisch

您始终可以将密钥发布到authorized_keys文件中。然后,您可以直接连接到该用户帐户。
Zoredache

Answers:


5

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

ssh youruser @ hostname“sudo -u remoteuser runco​​mmand”


这究竟是如何解决Esker的问题的呢?
Fiisch

是的,我误读了。更新了答案。
piksel bitworks

2
经过一些调整,这很有效,谢谢。 ssh -t hostname "sudo su user -c runcommand"
Esker

1

通常情况下也需要终端。在这种情况下,以下应该适用:

commands='cd myfolder;ls -l'

ssh -ttt "youruser@remotehost" "sudo -u remoteuser sh -c ${commands}"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.