Za delo v oddaljenem sistemu se najprej prijavite v ta sistem, izvedete ukaze za izvajanje različnih nalog in se nato odjavite iz te seje. Tudi za zagon enega samega ukaza v oddaljenem sistemu morate opraviti vse korake. Medtem ko delate na lokalnih in oddaljenih sistemih vzporedno, morate večkrat preklopiti med njimi. Večkratna prijava in odjava iz sistema je lahko moteča. Moral bi obstajati način, ki vam omogoča izvajanje ukazov v oddaljenem sistemu, ne da bi se vanj prijavili.Na srečo vam lahko pokažemo, kako izvajati ukaze v oddaljenem sistemu prek SSH neposredno iz vašega lokalnega računalnika.
Pogoji
Kot predpogoj morate imeti:
- Ubuntu stroj
- Uporabnik s privilegiji sudo
Opomba: Ukazi, omenjeni v tej vadnici, so bili izvedeni v Ubuntu 20.04 LTS (Focal Fossa) terminal, ki ga je mogoče odpreti z bližnjico Ctrl + Alt + T. Isti ukazi veljajo tudi za Linux Mint in Debian.
Izvedite ukaze Linux na oddaljenem sistemu prek SSH
Za izvedbo ukaza v oddaljenem sistemu iz lokalnega sistema uporabite naslednjo sintakso:
$ sshKje uporabniško_ime je uporabnik oddaljenega sistema, hostname / IP_Address je ime gostitelja ali naslov IP oddaljenega sistema. The Ukaz / skripta je ukaz ali skript, ki ga želite zagnati v oddaljenem sistemu.
Če se SSH izvaja na drugih vratih, ki niso privzeta, ga navedite z zastavico -p, kot sledi:
$ ssh -pIzvedite en ukaz na oddaljenem sistemu
Recimo, da morate najti ime gostitelja oddaljenega sistema. V tem primeru bi bil ukaz, ki ga morate zagnati v lokalnem sistemu:
$ ssh kositer @ 192.168.72.148 ime gostiteljaZdaj boste morali vnesti geslo za oddaljenega uporabnika. Vnesite geslo in pritisnite Enter.
V naslednjem izhodu je »mypc« ime gostitelja oddaljenega sistema.
Ukaz lahko zaprete tudi v enojni (") ali dvojno obrnjeni vejici (" "), kot je ta:
Izvedite več ukazov na oddaljenem sistemu
Če morate v oddaljenem sistemu izvajati več ukazov prek SSH, jih ločite s pomočjo (;) ali (&&) in jih dodajte v obrnjene vejice (“”). Če več ukazov ne vstavite v obrnjene vejice, se bo na oddaljenem računalniku izvedel samo prvi ukaz, drugi ukazi pa na lokalnem računalniku.
$ sshali
$ sshUporaba ločevalnika &&
Če uporabljate ločilo (&&), se drugi ukaz zažene le, če je prvi ukaz uspešno izveden. Če želite na primer zagnati ukaza “mkdir” in “ls” v oddaljenem sistemu, morate v lokalnem sistemu izdati naslednji ukaz:
$ ssh -t kositer @ 192.168.72.148 “Mkdir myfiles && ls”Zdaj boste morali vnesti geslo za oddaljenega uporabnika. Vnesite geslo in pritisnite Enter.
Sledi izpis ukazov, izvedenih v oddaljenem sistemu. Drugi ukaz “ls” se bo izvedel v oddaljenem sistemu le, če bo prvi ukaz “mkdir” uspel.
Ta ukaz je uporaben tudi pri nadgradnji sistema. Na splošno se nadgradnja sistema izvede po posodobitvi. Zato lahko z zgornjim ukazom nadgradite sistem, da se zažene le, če posodobitve uspejo.
Uporabljati ; ločilo
Če uporabljate ločilo (;), se bo drugi ukaz zagnal, ne glede na to, ali je bil prvi ukaz uspešen ali ne. Če želite na primer v oddaljenem sistemu zagnati ukaza “hostname” in “ip r”, boste morali v lokalnem sistemu izdati naslednji ukaz:
$ ssh kositer @ 192.168.72.148 “Ime gostitelja; ip r "Zdaj boste morali vnesti geslo za oddaljenega uporabnika. Vnesite geslo in pritisnite Enter.
Sledi izpis ukazov, izvedenih v oddaljenem sistemu. Drugi ukaz “ip r” se izvede, tudi če je prvi ukaz neuspešen.
Izvedite ukaz na oddaljenem sistemu s pravicami Sudo
Nekateri ukazi v Linuxu zahtevajo povišane privilegije, kot so namestitev ali odstranitev katere koli programske opreme, dodajanje ali odstranjevanje uporabnika, spreminjanje sistemskih konfiguracij itd. Ko zaženete ukaz v oddaljenih sistemih, ki zahtevajo privilegije sudo, boste najprej pozvani k geslu za oddaljenega uporabnika, nato pa boste morali izvesti geslo sudo za izvedbo ukaza.
Če želite na primer posodobiti sistemske repozitorije v oddaljenem sistemu, morate v lokalnem sistemu zagnati naslednji ukaz:
$ ssh -t kositer @ 192.168.72.148 “Posodobitev sudo apt”Sledi izhod ukaza, ki se izvaja v oddaljenem sistemu z povišanimi privilegiji.
Opomba: Tukaj je za prisilno dodelitev tty uporabljena možnost -t.
Izvedite ukaz na oddaljenem sistemu in shranite njegov izhod v lokalni sistem
Izhod ukazov, izvedenih v oddaljenih sistemih, lahko shranite tudi v lokalni sistem. Na primer, naslednji ukaz bo izvedel ukaz ifconfig v oddaljenem sistemu in nato shranil svoj izhod v datoteko z imenom ip.txt na namizju lokalnega računalnika.
$ ssh -t kositer @ 192.168.72.148 “Ifconfig”> ~ / Namizje / ip.txt
Izvedite lokalni skript na oddaljenem sistemu
Skript, nameščen v lokalnem sistemu, se lahko izvede tudi v oddaljenem sistemu. Razložimo to z ustvarjanjem skripta z imenom sample.sh v lokalnem sistemu.
$ sudo nano vzorec.shV datoteko skripta dodajte spodnje vrstice:
#!/ bin / bashdatum
ime gostitelja
ip pot
ping -c 3 google.com
Zdaj shranite in zaprite skript.
Zdaj za izvedbo vzorca skripta.sh na oddaljenem sistemu, v terminalu izdajte spodnji ukaz:
Tu je izhod po izvedbi skripta v oddaljenem sistemu:
To je vse! V tej vadnici smo vam pokazali, kako izvajati ukaze v oddaljenem sistemu prek SSH. Olajša delo na oddaljenem sistemu in vas tudi večkrat reši težav pri prijavi in odjavi iz oddaljenega sistema.