• Uto. tra 21st, 2026

Oblak Znanja

informatička edukacija i vijesti

Kako pokrenuti naredbu koja zahtijeva sudo putem SSH-a

ByTomšić Damjan

sij 7, 2025

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.

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 sshd
sudo 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 ssh
sudo 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.

Ovdje je tty greška. Slika: Jack Wallen

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.

Zahtjev za korisničkom lozinkom za sudo privilegije. Slika: Jack Wallen

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.

Web izvor

By Tomšić Damjan

Pozdrav, ja sam Damjan Tomšić, osnivatelj i urednik informatičko edukativnog bloga Oblak Znanja. Za Vas ću se potruditi da dobijete edukativne članke, savjete i recenzije vezane uz osnovno i napredno korištenje računala i interneta. Kontak: Google+, Gmail.