
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}"