Запуск команд от имени другого пользователя на их компьютере через ssh?

Запуск команд от имени другого пользователя на их компьютере через ssh?

В рамках моего обычного рабочего процесса я подключаюсь по ssh к машине другого пользователя, переключаюсь на него, запускаю команду, а затем снова выхожу на свою машину:

ssh hostname
sudo su user
runcommand
exit
exit

Есть ли способ сократить это до одной строки команды? Например

ssh --someflags "runcommand"

Я попробовал это сделать, но мне предложили ввести пароль другого пользователя, которого у меня нет:

sudo ssh user@hostnme "runcommand"

решение1

У вас есть пользователь на всех удаленных компьютерах? Я думаю, это должно работать, но я не уверен, что правильно понял вашу настройку.

ssh вашпользователь@имя_хоста "sudo -u удаленныйпользователь запуститькоманду"

решение2

Часто бывает так, что требуется также терминал. В этом случае должно сработать следующее:

commands='cd myfolder;ls -l'

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

Связанный контент