
В рамках моего обычного рабочего процесса я подключаюсь по 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}"