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ą.