ssh

Как выполнять команды Linux в удаленной системе через SSH?

Как выполнять команды Linux в удаленной системе через SSH?

Чтобы работать в удаленной системе, сначала вы входите в эту систему, выполняете команды для выполнения различных задач, а затем выходите из этого сеанса. Даже для запуска одной команды в удаленной системе необходимо пройти все этапы. При одновременной работе с локальной и удаленной системами вам необходимо переключаться между ними несколько раз. Многократный вход в систему и выход из нее может раздражать. Должен быть способ, позволяющий выполнять команды в удаленной системе без входа в нее.К счастью, есть способ показать вам, как выполнять команды в удаленной системе через SSH прямо с вашего локального компьютера.

Предпосылки

В качестве предварительных условий у вас должны быть:

Примечание. Команды, упомянутые в этом руководстве, были выполнены в Ubuntu 20.04 LTS (Focal Fossa) Терминал, который можно открыть с помощью сочетания клавиш Ctrl + Alt + T. Те же команды также применимы для Linux Mint и Debian.

Выполнение команд Linux в удаленной системе через SSH

Чтобы выполнить команду в удаленной системе из вашей локальной системы, используйте следующий синтаксис:

$ ssh

Где имя пользователя пользователь удаленной системы, имя хоста / IP_адрес это имя хоста или IP-адрес удаленной системы. В Команда / сценарий это команда или сценарий, который вы хотите запустить в удаленной системе.

Если SSH работает на каком-либо порту, отличном от порта по умолчанию, обязательно укажите его с помощью флага -p следующим образом:

$ ssh -p

Выполнить одиночную команду в удаленной системе

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

$ ssh жесть @ 192.168.72.148 имя хоста

Теперь вам будет предложено ввести пароль для удаленного пользователя. Введите пароль и нажмите Enter.

В следующем выводе «mypc» - это имя хоста удаленной системы.


Вы также можете заключить команду в одиночные (") или двойные кавычки (" ") следующим образом:

$ ssh жесть @ 192.168.72.148 «Имя хоста»

Выполнение нескольких команд в удаленной системе

Если вам нужно выполнить несколько команд в удаленной системе через SSH, разделите их с помощью (;) или (&&) и заключите их в кавычки («»). Если вы не поместите несколько команд в кавычки, то только первая команда будет выполнена на удаленном компьютере, а остальные команды будут выполняться на локальном компьютере.

$ ssh   «Command1 && command2»

или же

$ ssh   «Command1; command2 »

Использование разделителя &&

Если вы используете разделитель (&&), вторая команда будет запущена только в том случае, если первая команда будет выполнена успешно. Например, чтобы запустить команды «mkdir» и «ls» в удаленной системе, вам нужно будет ввести следующую команду в вашей локальной системе:

$ ssh -t жесть @ 192.168.72.148 «Mkdir myfiles && ls»

Теперь вам будет предложено ввести пароль для удаленного пользователя. Введите пароль и нажмите Enter.

Ниже приведен вывод команд, выполняемых в удаленной системе. Вторая команда «ls» будет выполнена только в удаленной системе, если первая команда «mkdir» завершится успешно.


Эта команда также полезна при обновлении системы. Обычно обновление системы выполняется после обновления. Следовательно, используя указанную выше команду, вы можете запустить обновление системы только в случае успешного обновления.

С помощью ; разделитель

Если вы используете разделитель (;), вторая команда будет выполняться независимо от того, была ли первая команда успешной или нет. Например, чтобы запустить команды hostname и ip r в удаленной системе, вам нужно будет ввести следующую команду в вашей локальной системе:

$ ssh жесть @ 192.168.72.148 «Имя хоста; ip r ”

Теперь вам будет предложено ввести пароль для удаленного пользователя. Введите пароль и нажмите Enter.

Ниже приведен вывод команд, выполняемых в удаленной системе. Вторая команда «ip r» будет выполнена, даже если первая команда не удалась.

Выполнение команды в удаленной системе с привилегиями Sudo

Для некоторых команд в Linux требуются повышенные привилегии, такие как установка или удаление любого программного обеспечения, добавление или удаление пользователя, изменение конфигурации системы и т. Д. Когда вы выполняете команду в удаленных системах, требующих привилегий sudo, вам сначала будет предложено ввести пароль для удаленного пользователя, а затем вам будет предложено ввести пароль sudo для выполнения команды.

Например, чтобы обновить системные репозитории в удаленной системе, вам нужно будет запустить следующую команду в своей локальной системе:

$ ssh -t жесть @ 192.168.72.148 «Sudo apt update»

Ниже приведен вывод команды, выполненной в удаленной системе с повышенными привилегиями.


Примечание. Здесь используется опция -t для принудительного выделения tty.

Выполнить команду в удаленной системе и сохранить ее вывод в локальной системе

Вывод команд, выполняемых в удаленных системах, также может быть сохранен в локальной системе. Например, следующая команда выполнит команду ifconfig в удаленной системе, а затем сохранит ее вывод в файл с именем ip.txt на рабочем столе локальной машины.

$ ssh -t жесть @ 192.168.72.148 «Ifconfig»> ~ / Рабочий стол / ip.текст

Выполнить локальный сценарий в удаленной системе

Скрипт, размещенный в локальной системе, также может быть выполнен в удаленной системе. Давайте объясним это, создав сценарий с именем sample.sh в локальной системе.

$ sudo nano образец.ш

Добавьте следующие строки в файл сценария:

#!/ bin / bash
Дата
имя хоста
IP-маршрут
пинг -c 3 гугл.ком

Теперь сохраните и закройте скрипт.


Теперь, чтобы выполнить образец скрипта.sh в удаленной системе, введите в Терминале следующую команду:

$ ssh -t жесть @ 192.168.72.148 'bash -s; < sample.sh

Вот результат выполнения сценария в удаленной системе:


Это все, что нужно для этого! В этом руководстве мы показали вам, как выполнять команды в удаленной системе через SSH. Это делает работу в удаленной системе очень простой, а также избавляет вас от хлопот многократного входа в удаленную систему и выхода из нее.

Shadow of the Tomb Raider для Linux Учебное пособие
Shadow of the Tomb Raider - двенадцатое дополнение к серии Tomb Raider - франшизе приключенческой игры, созданной Eidos Montreal. Игра была очень хоро...
Как увеличить FPS в Linux?
FPS означает Кадров в секунду. Задача FPS - измерить частоту кадров при воспроизведении видео или во время игры. Проще говоря, количество непрерывных ...
Лучшие игры Oculus App Lab
Если вы владелец гарнитуры Oculus, вы должны знать о загрузке неопубликованных приложений. Боковая загрузка - это процесс установки на гарнитуру содер...