Kako uporabljati SSH ProxyJump in SSH ProxyCommand v Linuxu
Na kratko: V tem priročniku prikazujemo, kako uporabljati ukaza SSH ProxyJump in SSH ProxyCommand pri povezovanju s preskočnim strežnikom.
V našem prejšnjem vodniku o tem, kako nastaviti strežnik SSH Jump, smo obravnavali koncept Bastion Host. Gostitelj Bastion ali Jump Server je vmesna naprava, s katero se najprej poveže odjemalec SSH, preden dostopa do ciljnega oddaljenega sistema Linux. Strežnik SSH Jump deluje kot prehod do vaših virov IT in tako zmanjša površino napada.
Ukaza SSH ProxyJump in ProxyCommand določata, kako se odjemalec poveže z oddaljenim strežnikom prek preskočnega strežnika, preskočnega gostitelja ali bastionskega strežnika.
Ta priročnik osvetljuje SSH ProxyJump in SSH Proxy Command v Linuxu.
Povežite oddaljeni Linux z ukazom SSH ProxyJump
Ukaz ProxyJump je označen z zastavico -J
. Predstavljen je bil v strežniku OpenSSH različice 7.3 in vam pomaga vzpostaviti povezavo z oddaljenim ciljem tako, da preskočite bastion ali jump server.
Spodnja sintaksa prikazuje, kako se uporablja ta možnost:
$ ssh -J <jump-server> <remote-target>
V primeru več strežnikov bastion ali skok ima sintaksa naslednjo obliko.
$ ssh -J <jump-server-1> <jump-server-2> <remote-target>
V obeh primerih boste na vsakem koraku prijavljeni kot korenski uporabnik. To ni idealno zaradi varnostnih razlogov, zato boste morda želeli v vsakem primeru ustvariti različne uporabnike.
Izrecno lahko določite različne uporabnike in vrata SSH, kot je prikazano.
$ ssh -J <[email :port> <[email :port>
Za predstavitev zastavice ProxyJump v akciji imamo prikazano preprosto nastavitev.
Jump Server IP: 173.82.232.55 User: james
Remote Target IP: 173.82.227.89 User: tecmint
Za povezavo z oddaljenim ciljem prek strežnika Jump bo ukaz videti takole.
$ ssh -J [email [email
Ukaz vas bo pozval k uporabniškemu geslu preskočnega strežnika, ki mu bo sledilo geslo ciljnega sistema, na podlagi katerega vam bo odobren dostop do ciljnega sistema.

Če redno uporabljate določen bastion za povezavo z določenim oddaljenim ciljem, lahko dodate naslednjo konfiguracijo ProxyJump v datoteko ~/.ssh/config, da bo povezava brezhibna. Ko se to zgodi, boste potrjeni samo enkrat in to se zgodi samo na oddaljenem cilju.
Host host-jump
User james
Hostname 173.82.232.55
Host host_destination
User tecmint
Hostname 173.82.227.89
Port 22
Z uporabo zgornje konfiguracije lahko vzpostavite povezavo s ciljem, kot je prikazano.
$ ssh -J host_destination

Povežite oddaljeni Linux z ukazom SSH ProxyCommand
Pred SSH Proxy Jump je bil ProxyCommand edini način za preskok gostiteljev za doseganje oddaljenega cilja. Deluje tako, da posreduje stdin (standardni vhod) in stdout (standardni izhod) od oddaljenega cilja prek preskočnega strežnika ali bastiona.
ProxyCommand ima naslednjo sintakso.
$ ssh -o ProxyCommand="ssh -W %h:%p <jump server>" <remote target>
Tukaj -W
za argumente %h:%p
posreduje stdin in ven do oddaljenega gostitelja (%h)
in oddaljenega gostiteljeva vrata (%p)
.
Da bi ukaz začel delovati, bi naš ukaz izgledal takole
$ ssh -o ProxyCommand="ssh -W %h:%p 173.82.232.55" 173.82.227.89

Seveda je tipkanje celotnega ukaza dolgočasno in dolgotrajno. Da se izognete tipkanju tako dolgega ukaza, dodajte naslednje vrstice kode v datoteko ~/.ssh/config.
Host host-destination
Hostname 173.82.227.89
ProxyCommand ssh -q -W %h:%p host-jump
Shrani in zapusti.
Zdaj morate samo zagnati naslednji ukaz za povezavo z oddaljenim strežnikom.
$ ssh host-destination
V tem priročniku smo pokazali, kako delujeta ukaza ProxyJump in ProxyCommand. Na splošno je ProxyJump boljša alternativa ProxyCommandu in zagotavlja lažji in brezhiben način povezovanja z oddaljenim ciljem prek gostitelja skoka.