
Como parte de mi flujo de trabajo normal, entro a la máquina de otro usuario, cambio de usuario, ejecuto un comando y luego salgo a mi propia máquina nuevamente:
ssh hostname
sudo su user
runcommand
exit
exit
¿Hay alguna manera de reducir esto a un comando de una sola línea? p.ej
ssh --someflags "runcommand"
Intenté esto pero me solicita la contraseña del otro usuario, que no tengo:
sudo ssh user@hostnme "runcommand"
Respuesta1
¿Tiene un usuario en todas las computadoras remotas? Supongo que esto debería funcionar, pero no estoy seguro de haber entendido correctamente la configuración.
ssh suusuario@nombredehost "sudo -u comando de ejecución de usuario remoto"
Respuesta2
A menudo ocurre que también se necesita un terminal. Lo siguiente debería funcionar en este caso:
commands='cd myfolder;ls -l'
ssh -ttt "youruser@remotehost" "sudo -u remoteuser sh -c ${commands}"