ssh

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

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

За да работите върху отдалечената система, първо влизате в системата, изпълнявате команди за изпълнение на различни задачи и след това излизате от тази сесия. Дори за да изпълните една команда на отдалечена система, трябва да преминете през всички стъпки. Докато работите на локалната и отдалечената системи една до друга, трябва да превключвате между тях няколко пъти. Влизането и излизането от системата няколко пъти може да бъде досадно. Трябва да има начин, който ви позволява да изпълнявате команди на отдалечена система, без да влизате в нея.За щастие има начин да ви покажем как да изпълнявате команди на отдалечена система през SSH направо от вашата локална машина.

Предпоставки

Като предпоставки трябва да имате:

Забележка: Командите, споменати в този урок, са изпълнени на Ubuntu 20.04 LTS (Focal Fossa) терминал, който може да се отвори чрез прекия път Ctrl + Alt + T. Същите команди са приложими и за Linux Mint и Debian.

Изпълнете Linux команди на отдалечена система през SSH

За да изпълните команда на отдалечена система от вашата локална система, използвайте следния синтаксис:

$ ssh

Където потребителско име е потребителят на отдалечената система, име на хост / IP_адрес е името на хоста или IP адреса на отдалечената система. The Command / Script е командата или скриптът, които искате да изпълните на отдалечената система.

Ако SSH се изпълнява на друг порт, различен от порта по подразбиране, не забравяйте да го споменете, като използвате флага -p, както следва:

$ ssh -p

Изпълнете единична команда на отдалечена система

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

$ ssh калай @ 192.168.72.148 име на хост

Сега ще бъдете помолени да предоставите паролата за отдалечения потребител. Въведете паролата и натиснете Enter.

В следващия изход “mypc” е името на хоста на отдалечената система.


Можете също така да приложите командата в единични (") или двойно обърнати запетаи (" ”) по следния начин:

$ ssh калай @ 192.168.72.148 „Име на хост“

Изпълнете няколко команди на отдалечена система

Ако трябва да изпълните множество команди на отдалечената система през SSH, разделете ги с помощта на (;) или (&&) и ги затворете в обърнати запетаи (“”). Ако не поставите множеството команди в обърнати запетаи, тогава само първата команда ще бъде изпълнена на отдалечената машина, а останалите команди ще бъдат изпълнени на локалната машина.

$ ssh   “Command1 && command2”

или

$ ssh   „Команда1; command2 ”

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

Ако използвате разделителя (&&), втората команда ще се изпълни само ако първата команда бъде изпълнена успешно. Например, за да стартирате команди „mkdir“ и „ls“ на отдалечената система, ще трябва да издадете следната команда на вашата локална система:

$ ssh -t калай @ 192.168.72.148 „Mkdir myfiles && ls“

Сега ще бъдете помолени да предоставите паролата за отдалечения потребител. Въведете паролата и натиснете Enter.

Следва изходът на командите, изпълнявани на отдалечена система. Втората команда “ls” ще бъде изпълнена на отдалечената система само ако първата команда “mkdir” успее.


Тази команда е полезна и при надграждане на системата. Обикновено надстройката на системата се извършва след актуализация. Следователно, използвайки горната команда, можете да накарате надстройката на системата да се изпълнява само ако актуализациите успеят.

Използвайки ; разделител

Ако използвате разделителя (;), втората команда ще се изпълни, без значение дали първата команда е била успешна или не. Например, за да стартирате команди „име на хост“ и „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”> ~ / Desktop / ip.текст

Изпълнете локален скрипт на отдалечена система

Скриптът, поставен в локалната система, може да се изпълни и в отдалечената система. Нека да обясним това, като създадем скрипт с име sample.sh в локалната система.

$ sudo nano проба.ш

Добавете долни редове във файла на скрипта:

#!/ bin / bash
дата
име на хост
ip маршрут
ping -c 3 google.com

Сега запазете и затворете скрипта.


Сега, за да изпълним пробата на скрипта.sh на отдалечената система, издайте командата по-долу в терминала:

$ ssh -t калай @ 192.168.72.148 'bash -s; < sample.sh

Ето изхода след изпълнението на скрипта на отдалечена система:


Това е всичко! В този урок ви показахме как да изпълнявате команди на отдалечена система през SSH. Това прави работата по отдалечената система много лесна, а освен това ви спестява от караницата при многократно влизане и излизане от отдалечената система.

SuperTuxKart за Linux
SuperTuxKart е страхотно заглавие, създадено да ви предостави безплатно изживяването на Mario Kart във вашата Linux система. Играта е доста предизвика...
Урок за битка за Уеснот
Битката за Уеснот е една от най-популярните стратегически игри с отворен код, които можете да играете по това време. Тази игра не само се разработва о...
0 А.д. Урок
От многото стратегически игри, 0 A.д. успява да се открои като изчерпателно заглавие и много дълбока, тактическа игра, въпреки че е с отворен код. Раз...