Kako koristiti SSH ProxyJump i SSH ProxyCommand u Linuxu


Ukratko: u ovom vodiču demonstriramo kako koristiti naredbe SSH ProxyJump i SSH ProxyCommand prilikom povezivanja na poslužitelj za skok.

U našem prethodnom vodiču o tome kako postaviti SSH Jump Server, obradili smo koncept Bastion Host. Bastion host ili Jump Server je posrednički uređaj na koji se SSH klijent prvo povezuje prije pristupa ciljnom udaljenom Linux sustavu. SSH Jump poslužitelj djeluje kao pristupnik vašim IT resursima, čime se smanjuje površina napada.

Naredbe SSH ProxyJump i ProxyCommand određuju kako se klijent povezuje s udaljenim poslužiteljem putem jump servera, jump host , ili bastion poslužitelj.

Ovaj vodič baca svjetlo na SSH ProxyJump i SSH Proxy Command u Linuxu.

Povežite udaljeni Linux pomoću SSH ProxyJump naredbe

Naredba ProxyJump označena je oznakom -J. Predstavljen je u OpenSSH poslužitelju verzije 7.3 i pomaže vam da uspostavite vezu s udaljenim ciljem preskakanjem kroz bastion ili jump server.

Sintaksa ispod pokazuje kako se ova opcija koristi:

ssh -J <jump-server> <remote-target>

U slučaju višestrukih bastion ili jump poslužitelja, sintaksa ima sljedeći format.

ssh -J <jump-server-1> <jump-server-2> <remote-target>

U oba slučaja bit ćete prijavljeni kao root korisnik na svakom koraku. Ovo nije idealno zbog sigurnosnih razloga, pa biste mogli stvoriti različite korisnike u svakoj instanci.

Možete eksplicitno navesti različite korisnike i SSH portove kao što je prikazano.

ssh -J <user@jump-host:port> <user@remote-target:port>

Da bismo demonstrirali zastavu ProxyJump na djelu, imamo jednostavnu postavku kao što je prikazano.

Jump Server IP:		173.82.232.55		User: james
Remote Target IP:	173.82.227.89		User: tecmint

Za povezivanje s udaljenim ciljem pomoću poslužitelja Jump, naredba će izgledati ovako.

ssh -J [email  [email 

Naredba će od vas zatražiti korisničku lozinku poslužitelja skoka, a zatim slijedi lozinka ciljnog sustava na temelju koje će vam biti odobren pristup ciljnom sustavu.

Konfiguriranje proxy hostova u datoteci ~/.ssh/config

Ako redovito koristite određeni bastion za povezivanje s određenim udaljenim ciljem, možete dodati sljedeću konfiguraciju ProxyJump u datoteci ~/.ssh/config kako bi veza bila besprijekorna . Kada se to dogodi, bit ćete autentificirani samo jednom i to se događa samo na udaljenom cilju.

Host host-jump
User james
Hostname 173.82.232.55

Host host_destination
User tecmint
Hostname 173.82.227.89
Port 22

Koristeći gornju konfiguraciju, možete uspostaviti vezu s ciljem kao što je prikazano.

ssh -J host_destination

Povežite udaljeni Linux pomoću naredbe SSH ProxyCommand

Prije SSH proxy skoka, ProxyCommand je bio jedini način preskakanja hostova da bi se došlo do udaljenog cilja. Djeluje tako da prosljeđuje stdin (standardni ulaz) i stdout (standardni izlaz) s udaljenog cilja kroz skok poslužitelj ili bastion.

ProxyCommand ima sljedeću sintaksu.

ssh -o ProxyCommand="ssh -W %h:%p <jump server>" <remote target>

Ovdje -W za argumente %h:%p prosljeđuje stdin i prema udaljenom hostu (%h) i udaljenom port hosta (%p).

Da naredbu provedemo u djelo, ovako bi izgledala naša naredba

ssh -o ProxyCommand="ssh -W %h:%p 173.82.232.55" 173.82.227.89

Konfiguriranje ProxyCommanda u datoteci ~/.ssh/config

Naravno, upisivanje cijele naredbe je zamorno i dugotrajno. Kako biste izbjegli upisivanje tako dugačke naredbe, dodajte sljedeće retke koda u svoju datoteku ~/.ssh/config.

Host host-destination
Hostname 173.82.227.89
ProxyCommand ssh -q -W %h:%p host-jump

Spremi i izađi.

Sada sve što trebate učiniti je pokrenuti sljedeću naredbu za spajanje na udaljeni poslužitelj.

ssh host-destination
Zaključak

U ovom smo vodiču pokazali kako funkcioniraju naredbe ProxyJump i ProxyCommand. Općenito, ProxyJump dolazi kao bolja alternativa za ProxyCommand i pruža lakši i besprijekoran način povezivanja s udaljenom metom putem hosta za skok.