¿Ejecutar comandos como otro usuario en su máquina a través de ssh?

¿Ejecutar comandos como otro usuario en su máquina a través de ssh?

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

información relacionada