Secure Shell uključuje mnogo trikova, od kojih mnogi mogu eksponencijalno olakšati život vašem administratoru. Jedan takav trik je mogućnost pokretanja naredbi na udaljenim poslužiteljima, bez prijave.
Naravno, možete odvojiti vrijeme da se prijavite na poslužitelj, pokrenete naredbu i odjavite se, ali zašto ne biste sve to učinili jednim potezom? Ne samo da je ovo zgodno, nego je i prilično jednostavno.
Sadržaj objave
Ono što vam treba
Jedino što trebate za ovo su još dva Linux stroja, uključujući openssh-poslužitelj koji radi (i prihvaća veze). To možete učiniti iz standardnih repozitorija ako nemate instaliran SSH demon. Na primjer, na Ubuntu Server platformi, naredba za instaliranje SSH demona je:
sudo apt-get install openssh-server -y
Nakon instalacije, htjet ćete omogućiti poslužitelj pomoću naredbi:
sudo systemctl start sshdsudo systemctl enable sshd
Imajte na umu da se na Ubuntu sustavima usluga za OpenSSH poslužitelj zove ssh, a ne sshd. Stoga bi naredbe za pokretanje i omogućavanje SSH poslužitelja bile:
sudo systemctl start sshsudo systemctl enable ssh
Sada kada imate pokrenut SSH demon na udaljenim poslužiteljima, možete im slati naredbe. Saznajmo kako.
Izvođenje osnovne naredbe
Idemo dobiti popis datoteka u udaljenom direktoriju /etc. Da biste to učinili, naredba je:
ssh USER@SERVER_IP "ls /etc"
Gdje je USER udaljeno korisničko ime, a SERVER_IP je IP adresa udaljenog poslužitelja. Nakon što uspješno unesete lozinku udaljenog korisnika, dobit ćete popis direktorija /etc/ na udaljenom poslužitelju.
Lagano.
Pokretanje naredbe koja zahtijeva sudo
Ali što ako morate pokrenuti naredbu koja zahtijeva sudo privilegije na udaljenom poslužitelju? Ako to učinite, vidjet ćete pogrešku tty.
Kako to zaobići? Srećom, postoji mali prekidač koji možete dodati naredbi. Navedeni prekidač je -t. Što -t radi? Forsira dodjelu pseudo-terminala, tako da ssh nema pojma da nema lokalni terminal za korištenje.
Dakle, za pokretanje daljinske naredbe, putem ssh-a, koja zahtijeva sudo privilegije, ssh naredba izgleda ovako:
ssh -t USER@SERVER_IP "sudo COMMAND"
Recimo, na primjer, želite da korisnički priključak nadogradi udaljeni poslužitelj na 192.168.1.201. Ova naredba je:
ssh -t jack@192.168.1.201 "sudo apt-get upgrade -y"
Prvo ćete biti upitani za korisničku lozinku za SSH vezu, nakon čega slijedi drugi zahtjev za korisničku lozinku za sudo privilegije.
Naredba će se pokrenuti kao da je izvršena na lokalnom računalu (samo što se izvodi na udaljenom računalu). Kada se naredba završi, vratit ćete se na lokalni odzivnik, spremni za nastavak rada.
I to je sve što se tiče pokretanja naredbi koje zahtijevaju sudo privilegije na udaljenom računalu, putem SSH-a.
Ovaj je članak izvorno objavljen u srpnju 2019. Ažurirao ga je Antony Peyton u siječnju 2025.




