Да ли вам је потребан приступ ССХ-у до Линук система којем не можете директно приступити? Уместо да покушавате да се ви повежете са њим, нека се он повеже са вама. Након тога, искористите ту везу да бисте успоставили сопствену удаљену ССХ сесију. У овом тексту ћемо објаснити како се то ради.
Ситуације када је корисно обрнуто ССХ тунелирање
Понекад је веома изазовно успоставити везу са удаљеним рачунарима. Разлог томе може бити примена строгих правила заштитног зида на локацији на којој се рачунар налази, или комплексна правила за превод мрежних адреса коју је подесио локални администратор. Како да приступите таквом систему ако је повезивање са њим неопходно?
За потребе овог објашњења, означимо рачунаре. Ваш рачунар је локални јер је физички близу вас. Рачунар на који желите да се повежете је удаљени, јер је смештен на другој локацији.
У овом чланку, удаљени рачунар ће се звати „вдзвдз“ и користи Убунту Линук (са љубичастим прозорима терминала), док је локални рачунар „Сулацо“, који користи Мањаро Линук (са жутим прозорима терминала).
Уобичајено бисте иницирали ССХ конекцију са вашег локалног рачунара ка удаљеном. Међутим, то није могуће у ситуацији коју описујемо. Шта год био конкретан мрежни проблем, ово решење је корисно у свим случајевима када не можете директно да се повежете са удаљеним рачунаром користећи ССХ.
Ако је ваша мрежна конфигурација једноставна, удаљени рачунар може да се повеже са вама. Међутим, то само по себи није довољно за ваше потребе, јер вам не омогућава интерактивну сесију командне линије на удаљеном рачунару. Али, то је добар почетак, пошто сте успоставили комуникациону везу између два рачунара.
Решење лежи у коришћењу обрнутог ССХ тунелирања.
Шта је обрнуто ССХ тунелирање?
Обрнуто ССХ тунелирање вам омогућава да искористите већ успостављену везу за креирање нове везе, од вашег локалног рачунара ка удаљеном.
С обзиром да је оригинална веза креирана са удаљеног рачунара ка вашем, њено коришћење за комуникацију у супротном смеру је разлог зашто се каже да је „обрнута“. Пошто је ССХ безбедан, ви постављате безбедну везу унутар већ постојеће безбедне везе. На тај начин, ваша конекција са удаљеним рачунаром функционише као приватни тунел у оквиру оригиналне везе.
Одатле и потиче назив „обрнуто ССХ тунелирање“.
Како то функционише?
Обрнуто ССХ тунелирање зависи од тога да удаљени рачунар користи успостављену везу за слушање нових захтева за повезивање који долазе са локалног рачунара.
Удаљени рачунар слуша на одређеном мрежном порту на локалном рачунару. Ако детектује ССХ захтев за тај порт, тај захтев прослеђује назад ка себи, користећи успостављену везу. Овим се креира нова конекција, од локалног ка удаљеном рачунару.
Лакше је подесити него објаснити.
Коришћење ССХ обрнутог тунелирања
ССХ је вероватно већ инсталиран на вашем Линукс систему, али можда ћете морати да покренете ССХ демон (sshd) ако ваш локални рачунар никада раније није прихватао ССХ везе.
sudo systemctl start sshd
Да би се ССХ демон аутоматски покретао при сваком поновном покретању рачунара, користите следећу команду:
sudo systemctl enable sshd
На удаљеном рачунару, извршавамо следећу команду:
Опција „-R“ (обрнуто) говори ССХ-у да се нове ССХ сесије морају креирати на удаљеном рачунару.
„43022:localhost:22“ говори ССХ-у да се захтеви за повезивање са портом 43022 на локалном рачунару требају преусмерити на порт 22 на удаљеном рачунару. Порт 43022 је изабран јер је наведен као недодељен. То није посебан број.
[email protected] је корисничко име налога са којим ће се удаљени рачунар повезати на локалном рачунару.
ssh -R 43022:localhost:22 [email protected]
Могуће је да ћете видети упозорење да се никада раније нисте повезивали са локалним рачунаром. Или, можете видети упозорење током додавања детаља конекције на листу препознатих ССХ хостова. Оно што видите зависи од тога да ли су раније успостављене везе од удаљеног ка локалном рачунару.
Биће вам затражена лозинка за налог који користите за повезивање на локални рачунар.
Приметите да када се конекција успостави, командна линија се мења са [email protected] на [email protected]
Сада смо повезани са локалним рачунаром са удаљеног. То значи да можемо да извршавамо команде на локалном рачунару. Користимо команду `who` да видимо ко је пријављен на локални рачунар.
who
Видите да је корисник са именом `dave` пријављен на локални рачунар, и да се удаљени рачунар повезао (користећи исте акредитиве) са ИП адресе 192.168.4.25.
Повезивање са удаљеним рачунаром
С обзиром да је конекција са удаљеног рачунара успешна и слуша захтеве за повезивање, можемо покушати да се повежемо са удаљеним рачунаром са локалног.
Удаљени рачунар слуша на порту 43022 на локалном рачунару. Дакле, мало контраинтуитивно, да бисмо успоставили конекцију са удаљеним рачунаром, тражимо од ССХ-а да успостави конекцију са локалним рачунаром, на порту 43022. Тај захтев ће бити прослеђен удаљеном рачунару.
ssh localhost -p 43022
Тражи се лозинка за кориснички налог, и након тога се повезујемо са удаљеним рачунаром са локалног. Наш Мањаро рачунар поручује: „Добродошли у Убунту 18.04.2 ЛТС“.
Приметите да се командна линија променила са [email protected] на [email protected] Успели смо да успоставимо ССХ везу са нашим тешко доступним удаљеним рачунаром.
Коришћење ССХ са кључевима
Да би повезивање са удаљеног рачунара на локални било лакше, можемо подесити ССХ кључеве.
На удаљеном рачунару укуцајте следећу команду:
ssh-keygen
Тражиће се приступна фраза. Можете притиснути Ентер да прескочите питање о приступној фрази, али се то не препоручује. У том случају, свако на удаљеном рачунару би могао да успостави ССХ везу са вашим локалним рачунаром, без уноса лозинке.
Три или четири речи раздвојене симболима ће чинити робусну приступну фразу.
Ваши ССХ кључеви ће бити генерисани.
Сада морамо да пребацимо јавни кључ на локални рачунар. Користите следећу команду:
ssh-copy-id [email protected]
Тражиће се лозинка за кориснички налог на који се пријављујете, у овом случају [email protected]
Када први пут затражите повезивање са удаљеног рачунара на локални, мораћете да унесете приступну фразу. Нећете морати поново да је уносите за наредне захтеве за повезивање, док год је прозор терминала отворен.
Нису сви тунели опасни
Неки тунели могу бити мрачни и кривудави, али обрнуто ССХ тунелирање није превише тешко за схватити ако сте сигурни у однос између удаљеног и локалног рачунара. А онда, само окрените тај однос.