Я хочу запустить скрипт, который присутствует на локальном компьютере, но он должен выполнять операции на удаленном компьютере. Я уже сгенерировал открытые и закрытые ключи, поэтому аутентификация по паролю не требуется
ssh
хороший гражданин Unix; мы можем передать его, мы можем перенаправить его выходные данные и любым удобным для них способом.
ssh user@host sh < your_script.sh
Эта команда является перенаправлением: ваша оболочка откроет (локальный!) Файл your_script.sh
и передаст его в качестве ввода для команды ssh
. ssh
, в свою очередь, передаст свой стандартный ввод удаленной команде, а именно, sh
instance. sh
без аргументов читает свой скрипт из stdin. Строго говоря, часть sh
даже не нужна - ssh
запускает оболочку по умолчанию - но это облегчает объяснение.
Итак, мы получили экземпляр sh
, который запускается на удаленном хосте, но читает команды из вашего локального файла. Voila!
Это ТА отвечает на ваш точный вопрос: bash - Как вы используете ssh в сценарии оболочки? - Переполнение стека
ssh user@host command
#for example
ssh user@host ls
Если у вас есть большой скрипт, который вы хотите выполнить. Затем вы можете скопировать скрипт на удаленный компьютер с помощью sftp, а затем выполнить его с помощью приведенной выше команды.