Executando comandos como outro usuário em sua máquina via ssh?

Executando comandos como outro usuário em sua máquina via ssh?

Como parte do meu fluxo de trabalho normal, eu ssh na máquina de outro usuário, mudo o usuário para ele, executo um comando e saio para minha própria máquina novamente:

ssh hostname
sudo su user
runcommand
exit
exit

Existe uma maneira de reduzir isso a um comando de linha única? por exemplo

ssh --someflags "runcommand"

Eu tentei isso, mas fui solicitada a senha do outro usuário que não possuo:

sudo ssh user@hostnme "runcommand"

Responder1

Você tem um usuário em todos os computadores remotos? Acho que isso deve funcionar, mas não tenho certeza se entendi sua configuração corretamente.

ssh seuusuário@hostname "sudo -u comando de execução do usuário remoto"

Responder2

Muitas vezes também é necessário um terminal. O seguinte deve funcionar neste caso:

commands='cd myfolder;ls -l'

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

informação relacionada