7

As part of my normal workflow I ssh into another user's machine, switch user to them, run a command, then exit out to my own machine again:

ssh hostname
sudo su user
runcommand
exit
exit

Is there a way to cut this down to a single line command? e.g.

ssh --someflags "runcommand"

I have tried this but get prompted for the other user's password which I do not have:

sudo ssh user@hostnme "runcommand"
Esker
  • 73

2 Answers2

9

Do you have a user on all of the remote computers? I guess this should work, but im not sure i understand your setup correctly.

ssh youruser@hostname "sudo -u remoteuser runcommand"

3

It's often the case that a terminal is required as well. The following should work in this case:

commands='cd myfolder;ls -l'

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