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

2

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

ssh hostname
sudo su user
runcommand
exit
exit

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

ssh --someflags "runcommand"

Eu tentei isso, mas recebo a senha do usuário que não tenho:

sudo ssh user@hostnme "runcommand"
    
por Esker 04.10.2013 / 20:46

2 respostas

5

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 youruser@hostname "sudo -u remoteuser runcommand"

    
por 04.10.2013 / 20:53
1

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

commands='cd myfolder;ls -l'

ssh -ttt "youruser@remotehost" "sudo -u remoteuser sh -c ${commands}"
    
por 15.02.2016 / 13:14