Kaip pasiekti nuotolinį serverį naudojant peršokimo pagrindinį kompiuterį


Pereinamasis kompiuteris (dar vadinamas peršokimo serveriu) yra tarpinis pagrindinis kompiuteris arba SSH vartai į nuotolinį tinklą, per kurį galima užmegzti ryšį su kitu kompiuteriu, esančiame skirtingoje saugumo zonoje, pavyzdžiui, demilitarizuotoje zonoje (DMZ). Jis sujungia dvi skirtingas saugumo zonas ir siūlo kontroliuojamą prieigą tarp jų.

Šuolio priegloba turėtų būti labai apsaugota ir stebima, ypač kai ji apima privatų tinklą ir DMZ su serveriais, teikiančiais paslaugas vartotojams internete.

Klasikinis scenarijus yra prisijungimas iš darbalaukio ar nešiojamojo kompiuterio iš įmonės vidinio tinklo, kuris yra labai apsaugotas užkardomis, prie DMZ. Norėdami lengvai valdyti serverį DMZ, galite jį pasiekti naudodamiesi „jump host“.

Šiame straipsnyje mes parodysime, kaip pasiekti nuotolinį „Linux“ serverį per pereinamąjį pagrindinį kompiuterį, taip pat sukonfigūruosime būtinus parametrus vartotojo SSH kliento konfigūracijose.

Apsvarstykite šį scenarijų.

Pagal pirmiau pateiktą scenarijų norite prisijungti prie HOST 2, bet turite pereiti per HOST 1 dėl užkardos, maršruto parinkimo ir prieigos teisių. Yra kelios pagrįstos priežastys, kodėl reikalingi šuoliai.

Dinaminis „Jumphost“ sąrašas

Paprasčiausias būdas prisijungti prie tikslinio serverio per šuolio pagrindinį kompiuterį yra komandinės eilutės vėliavos -J naudojimas. Tai nurodo ssh užmegzti ryšį su peršokančiuoju kompiuteriu ir tada užmegzti TCP persiuntimą į tikslinį serverį, iš ten (įsitikinkite, kad tarp mašinų esate prisijungę be slaptažodžių SSH).

$ ssh -J host1 host2

Jei naudotojų vardai ar prievadai mašinose skiriasi, nurodykite juos terminale, kaip parodyta.

$ ssh -J [email :port [email :port	  

Kelių Jumphosts sąrašas

Ta pati sintaksė gali būti naudojama šuoliams per kelis serverius.

$ ssh -J [email :port,[email :port [email :port

Statinis „Jumphost“ sąrašas

Statinis „jumphost“ sąrašas reiškia, kad jūs žinote, kad jums reikia prijungti mašiną. Todėl į failą ~/.ssh/config turite įtraukti šį statinį „jumphost“ maršrutą “ir nurodyti pagrindinio kompiuterio slapyvardžius, kaip parodyta.

### First jumphost. Directly reachable
Host vps1
  HostName vps1.example.org

### Host to jump to via jumphost1.example.org
Host contabo
  HostName contabo.example.org
  ProxyJump vps1

Dabar pabandykite prisijungti prie tikslinio serverio per šuolio pagrindinį kompiuterį, kaip parodyta.

$ ssh -J vps1 contabo

Antrasis būdas yra naudoti parinktį „ProxyCommand“, kad pridėtumėte šuolio konfigūraciją į failą ~ .ssh/config arba $HOME/.ssh/config , kaip parodyta.

Šiame pavyzdyje tikslinis pagrindinis kompiuteris yra „contabo“, o šuolis yra „vps1“.

Host vps1
	HostName vps1.example.org
	IdentityFile ~/.ssh/vps1.pem
	User ec2-user

Host contabo
	HostName contabo.example.org	
	IdentityFile ~/.ssh/contabovps
	Port 22
	User admin	
	Proxy Command ssh -q -W %h:%p vps1

Kai komanda Tarpinio serverio komanda ssh -q -W% h:% p vps1 , tai reiškia, kad ssh reikia paleisti ramiuoju režimu (naudojant -q ) ir persiunčiant standartinį standartą (naudojant -W ) režimu, nukreipkite ryšį per tarpinį pagrindinį kompiuterį (vps1).

Tada pabandykite pasiekti savo tikslinį pagrindinį kompiuterį, kaip parodyta.

$ ssh contabo

Pirmiau nurodyta komanda pirmiausia atidarys ssh ryšį su „vps1“ fone, kurį atlieka „ProxyCommand“, ir tada pradėkite ssh sesiją į tikslinio serverio „contabo“.

Norėdami gauti daugiau informacijos, žr. Ssh žmogaus puslapį arba ieškokite: OpenSSH/Cookbxook/Proxies and Jump Hosts.

Tai kol kas viskas! Šiame straipsnyje mes parodėme, kaip pasiekti nuotolinį serverį per šuolio pagrindinį kompiuterį. Jei norite užduoti klausimų ar pasidalinti savo mintimis, naudokite toliau pateiktą atsiliepimų formą.