ssh

Kaip vykdyti „Linux“ komandas nuotolinėje sistemoje per SSH?

Kaip vykdyti „Linux“ komandas nuotolinėje sistemoje per SSH?

Norėdami dirbti nuotolinėje sistemoje, pirmiausia prisijunkite prie tos sistemos, vykdydami komandas atlikdami įvairias užduotis, tada atsijunkite nuo tos sesijos. Net norėdami paleisti vieną komandą nuotolinėje sistemoje, turite atlikti visus veiksmus. Dirbdami šalia vietinių ir nuotolinių sistemų, turite perjungti juos kelis kartus. Kelis kartus prisijungus ir atsijungus nuo sistemos gali būti nemalonu. Turėtų būti būdas, leidžiantis vykdyti komandas nuotolinėje sistemoje, neprisijungus prie jos.Laimei, yra būdas, kuriuo galime parodyti, kaip vykdyti komandas nuotolinėje sistemoje per SSH tiesiai iš vietinio kompiuterio.

Būtinos sąlygos

Būtinos sąlygos:

Pastaba: šioje pamokoje minimos komandos buvo vykdomos „Ubuntu 20“.04 LTS („Focal Fossa“) terminalas, kurį galima atidaryti per „Ctrl + Alt + T“ spartųjį klavišą. Tos pačios komandos taip pat taikomos „Linux Mint“ ir „Debian“.

Vykdykite „Linux“ komandas nuotolinėje sistemoje per SSH

Norėdami vykdyti komandą nuotolinėje sistemoje iš vietinės sistemos, naudokite šią sintaksę:

$ ssh

Kur Vartotojo vardas yra nuotolinės sistemos vartotojas, pagrindinio kompiuterio vardas / IP_ adresas yra nuotolinės sistemos pagrindinio kompiuterio vardas arba IP adresas. The Komanda / scenarijus yra komanda arba scenarijus, kurį norite paleisti nuotolinėje sistemoje.

Jei SSH veikia kitame nei numatytajame prievade, būtinai paminėkite jį naudodamiesi vėliava -p taip:

$ ssh -p

Vykdykite vieną komandą nuotolinėje sistemoje

Tarkime, jums reikia rasti nuotolinės sistemos pagrindinio kompiuterio pavadinimą. Tokiu atveju komanda, kurią turite paleisti vietinėje sistemoje, būtų:

$ ssh alavas @ 192.168.72.148 pagrindinio kompiuterio vardas

Dabar jūsų bus paprašyta pateikti nuotolinio vartotojo slaptažodį. Įveskite slaptažodį ir paspauskite Enter.

Šiame išvestyje „mypc“ yra nuotolinės sistemos pagrindinio kompiuterio pavadinimas.


Taip pat galite pridėti komandą į vieną (") arba dvigubą apverstą kablelį (" ") taip:

$ ssh alavas @ 192.168.72.148 „Hostname“

Vykdykite kelias komandas nuotolinėje sistemoje

Jei jums reikia atlikti kelias komandas nuotolinėje sistemoje per SSH, atskirkite jas naudodami (;) arba (&&) ir įdėkite jas į apverstus kablelius („“). Jei nedėsite kelių komandų į apverstus kablelius, nuotoliniame kompiuteryje bus vykdoma tik pirmoji komanda, o kitos - vietinėje mašinoje.

$ ssh   „Komanda1 && komanda2“

arba

$ ssh   „Komanda1; komanda2 “

Naudojant skirtuką &&

Jei naudojate (&&) skyriklį, antroji komanda bus vykdoma tik sėkmingai įvykdžius pirmąją komandą. Pavyzdžiui, norėdami nuotolinėje sistemoje paleisti komandas „mkdir“ ir „ls“, vietinėje sistemoje turėsite išduoti šią komandą:

$ ssh -t alavas @ 192.168.72.148 „Mkdir myfiles && ls“

Dabar jūsų bus paprašyta pateikti nuotolinio vartotojo slaptažodį. Įveskite slaptažodį ir paspauskite Enter.

Toliau pateikiama nuotolinėje sistemoje vykdomų komandų išvestis. Antroji komanda „ls“ bus vykdoma nuotolinėje sistemoje tik tada, jei pavyks pirma komanda „mkdir“.


Ši komanda taip pat naudinga atnaujinant sistemą. Paprastai sistemos atnaujinimas atliekamas po atnaujinimo. Todėl naudodamiesi aukščiau pateikta komanda, galite priversti sistemos naujovinimą veikti tik tuo atveju, jei naujinimai pavyks.

Naudojant ; separatorius

Jei naudojate (;) separatorių, antroji komanda bus vykdoma nesvarbu, ar pirmoji komanda buvo sėkminga, ar ne. Pavyzdžiui, norėdami nuotolinėje sistemoje paleisti komandas „hostname“ ir „ip r“, vietinėje sistemoje turėsite išduoti šią komandą:

$ ssh alavas @ 192.168.72.148 „Hostname; ip r “

Dabar jūsų bus paprašyta pateikti nuotolinio vartotojo slaptažodį. Įveskite slaptažodį ir paspauskite Enter.

Toliau pateikiama nuotolinėje sistemoje vykdomų komandų išvestis. Antroji komanda „ip r“ bus vykdoma, net jei pirmoji komanda bus nesėkminga.

Vykdykite komandą nuotolinėje sistemoje su „Sudo“ privilegijomis

Kai kurioms „Linux“ komandoms reikalingos padidintos privilegijos, pvz., Įdiegti ar pašalinti bet kokią programinę įrangą, pridėti ar pašalinti vartotoją, keisti sistemos konfigūracijas ir kt. Vykdydami komandą nuotolinėse sistemose, kurioms reikalingos sudo privilegijos, pirmiausia bus paprašyta nuotolinio vartotojo slaptažodžio, o tada jūsų bus paprašyta sudo slaptažodžio komandai vykdyti.

Pavyzdžiui, norėdami atnaujinti nuotolinės sistemos sistemos saugyklas, vietinėje sistemoje turėsite paleisti šią komandą:

$ ssh -t alavas @ 192.168.72.148 „Sudo apt update“

Toliau pateikiama komanda, vykdoma nuotolinėje sistemoje su padidintomis teisėmis.


Pastaba: Tada t parinktis naudojama t priversti paskirstyti.

Vykdykite komandą nuotolinėje sistemoje ir išsaugokite jos išvestį vietinėje sistemoje

Nuotolinėse sistemose vykdomų komandų išvestis taip pat gali būti išsaugota vietinėje sistemoje. Pvz., Ši komanda vykdys komandą „ifconfig“ nuotolinėje sistemoje ir išsaugos savo išvestį faile, pavadintame „ip“.txt vietinio kompiuterio darbalaukyje.

$ ssh -t alavas @ 192.168.72.148 „Ifconfig“> ~ / Desktop / ip.txt

Vykdykite vietinį scenarijų nuotolinėje sistemoje

Scenarijus, įdėtas į vietinę sistemą, taip pat gali būti vykdomas nuotolinėje sistemoje. Paaiškinkime tai sukurdami scenarijų, pavadintą pavyzdžiu.sh vietinėje sistemoje.

$ sudo nano pavyzdys.sh

Į scenarijaus failą įtraukite žemiau esančias eilutes:

#!/ bin / bash
data
pagrindinio kompiuterio vardas
ip maršrutas
ping -c 3 google.com

Dabar išsaugokite ir uždarykite scenarijų.


Dabar, norėdami įvykdyti scenarijaus pavyzdį.sh nuotolinėje sistemoje, pateikite šią komandą terminale:

$ ssh -t alavas @ 192.168.72.148 'bash -s; < sample.sh

Čia yra išvestis po scenarijaus vykdymo nuotolinėje sistemoje:


Tai viskas, kas yra! Šioje pamokoje parodėme, kaip vykdyti komandas nuotolinėje sistemoje per SSH. Tai labai palengvina darbą su nuotoline sistema ir sutaupo jus nuo kelių kartų prisijungimo ir nuotolinės sistemos iš vargo.

„Battle for Wesnoth“ pamoka
„Battle for Wesnoth“ yra vienas populiariausių atvirojo kodo strateginių žaidimų, kurį šiuo metu galite žaisti. Šis žaidimas ne tik buvo kuriamas laba...
0 A.D. Pamoka
Iš daugybės strateginių žaidimų 0 A.D. sugeba išsiskirti kaip išsamus pavadinimas ir labai gilus, taktinis žaidimas, nepaisant to, kad yra atviro kodo...
„Unity3D“ pamoka
Įvadas į „Unity 3D“ „Unity 3D“ yra galingas žaidimų kūrimo variklis. Tai yra daugiašalė platforma, kuri leidžia kurti žaidimus mobiliesiems, interneti...