රිලේ හරහා යන පොදු SSH සම්බන්ධයක් නොගැළපෙන මායිම් දෙකකින් අසාර්ථක වේ, සහ එකක් නිවැරදි කිරීමෙන් සාමාන්‍යයෙන් අනෙක හෙළි වේ. එක්කෝ දාරය ප්‍රවාහය ගෙනයාම වෙනුවට HTTP ප්‍රතිචාරයක් ලබා දෙයි, නැතහොත් රිලේ ඉදිරියෙන් පසුපසට කිසිදා කියවීමට එකඟ නොවූ ශීර්ෂකයක් එකතු කරයි. ඔබ බලන්නේ කුමක්ද යන්න කොන්දේසි තුනක් තීරණය කරයි: පොදු වාර්තාව ඇත්තටම යොමු වන්නේ කුමකටද, ප්‍රවාහ කොටස ඉහළට යවන්නේ කුමක්ද, සහ SSH සේවාදායකය පරීක්ෂා කරන්නේ කුමන නමද. ඒ අනුපිළිවෙලින් ඒවා හසුරුවන්න.

මායිම් දෙකක්, රෝග ලක්ෂණ දෙකක්

දාරයේ අසාර්ථකත්වය SSH බැනරය තිබිය යුතු තැනට HTTP තත්ත්ව පිටුවක් පැමිණෙන ලෙස පෙනේ. සම්බන්ධතාවය TCP මට්ටමේදී සම්පූර්ණ වන අතර පළමු බයිට වෙබ් සේවාදායකයට අයත් පෙළ වේ. එය ප්‍රොටෝකෝල නොගැළපීමකි, නැති වූ පැකට්ටුවක් නොවේ. එය ඔබට පවසන්නේ දාරය එම නම සඳහා හිතාමතා වෙනත් දෙයක් සපයන බවයි.

ඉහළ ප්‍රවාහයේ අසාර්ථකත්වය වෙනස් ලෙස පෙනේ. සම්බන්ධතාවය sshd වෙත ළඟා වේ, sshd තමා බලාපොරොත්තු වන හඳුනාගැනීම් හුවමාරුව නොවන බයිට කියවයි, සහ සැසිය කිසිදා යතුරක් නොදී මිය යයි හෝ එල්ලී තිබේ.

මේ දෙක ව්‍යාකූල කරගැනීම පහසුය, මන්ද දෙකම සම්බන්ධ වී පසුව අසාර්ථක වන සේවාදායකයක් නිපදවයි. ඔබට ලැබෙන පළමු ප්‍රොටෝකෝල ප්‍රතිචාරය ඒවා වෙන් කරන දෙයයි, එබැවින් එය ටිකට්ටුවේ තිබිය යුතුය.

PROXY ශීර්ෂකය පණිවිඩයකි, ස්විචයක් නොවේ

ප්‍රවාහ මොඩියුලයේ, proxy_protocol on NGINX වෙත භාරයට පෙර ඉහළ දිශාවට PROXY ප්‍රොටෝකෝල ශීර්ෂකයක් ලිවීමට නියෝග කරයි. එය TCP ප්‍රොක්සි සක්‍රීය නොකරයි, සහ SSH සංකේතනය සමඟ කිසිදු සම්බන්ධයක් නැත. එය ලබන්නා වෙත යොමු කළ සටහනකි. ලබන්නාට එය කියවිය නොහැකි නම්, එය ප්‍රවාහයේ ආරම්භයේ කසළ බවට පත් වේ.

ලබන සේවාව එම ශීර්ෂකය හිතාමතා පරිභෝජනය කළ යුතුය. සාමාන්‍ය sshd සම්බන්ධතාවයේ පළමු බයිට ලෙස SSH හඳුනාගැනීම් හුවමාරුව බලාපොරොත්තු වේ, එබැවින් අනපේක්ෂිත පෙරවදනක් අත්වැල් ගැසීම හානි වූ සේවාදායකයක් මෙන් පෙනෙන ආකාරයෙන් බිඳ දමයි.

stream {
    server {
        listen 2222;
        proxy_pass 10.77.0.20:22;
    }
}

එම කොටස VPN හරහා ළඟා විය හැකි පසුපසට සම්පූර්ණ ක්‍රියාකාරී රිලේ එකකි. කිසිදු PROXY නියෝගයක් නොපෙනේ, මන්ද ලබන්නා එම ප්‍රොටෝකෝලයෙන් කථා නොකරන බැවිනි, සහ එම නොපැවැත්ම ඉවත් කිරීමක් නොව, තීරණයකි.

දිශා දෙකම වෙන් කරන්න. listen පේළියේ proxy_protocol සැකසීම යනු NGINX තමන්ගේ සේවාදායකය පළමුව ශීර්ෂකය යවනු ඇතැයි බලාපොරොත්තු වන බවයි; සාමාන්‍ය SSH සේවාදායකයකට එය සක්‍රීය කිරීම මිනිසුන් සාමාන්‍යයෙන් විසඳීමට උත්සාහ කරන ගැටලුවේ හරියටම ප්‍රතිවිරුද්ධය නිපදවයි.

පොදු සත්කාරක නාමය ඇත්තටම ළඟා වන්නේ කොහෙටද

SSH සැසියක HTTP 400 පිටුවක් දාරය පිළිබඳ සාක්ෂියකි. මාර්ගයේ යමක් HTTP කථා කරයි, සහ පසුපසට යතුර හෝ ගිණුම් කටයුතු කෙසේ කළත් එය වෙනස් නොවේ. දාරය නිරාකරණය වන තෙක් පසුපසට වෙනස් කිරීම නවත්වන්න.

Cloudflare හි සාමාන්‍ය ප්‍රොක්සි කළ වාර්තාව එහි ආධාරක HTTP සහ HTTPS රථවාහන නිශ්චිත වරායන්හි ගෙන යයි. සත්කාරක නාමයක් සඳහා ප්‍රොක්සිය සක්‍රීය කිරීම සාමාන්‍ය TCP රිලේ එකක් නිර්මාණය නොකරයි, සහ SSH වරාය 443 වෙත ගෙන යාම එය HTTPS බවට පත් නොකරයි.

ක්‍රියාකාරී දිශා දෙකක් ඇත. DNS පමණක් වාර්තාවකට ඔබේම TCP රිලේ වෙත යොමු විය හැක, එය නිරාවරණ තීරණය ඔබේ අතේ තබයි. විකල්පයක් ලෙස, SSH ප්‍රවාහනය පැහැදිලිව ලේඛනගත කරන නිෂ්පාදනයක් භාවිතා කරන්න, එහිම මූලාරම්භය, සේවාදායකය සහ ප්‍රවේශ වින්‍යාසය සමඟ.

ඔබ කුමක් තෝරා ගත්තත්, රිලේට තවමත් පසුපසට VPN මාර්ගයක්, අවසර ලත් සම්බන්ධතාවයක් සහ ආපසු මාර්ගයක් අවශ්‍ය වේ. පොදු පැත්ත ක්‍රියා කරන නිසා මාර්ගය අත්‍යවශ්‍ය නොවන එකක් නොවේ.

අන්වර්ථයක් හරහා SSH අනන්‍යතාවය ස්ථිරව තබා ගන්න

පරිශීලකයින් සාමාන්‍යයෙන් තම පවතින සත්කාරක නාමය ටයිප් කිරීම දිගටම කරගෙන යාමට කැමති වේ. SSH වින්‍යාසයේ අන්වර්ථයකට රිලේ පිළිබඳ කිසිවක් වෙනස් නොකර එය කළ හැක, සහ වෙනස්කම් සේවාදායක පැත්තේ එය තිබිය යුතු තැන තබා ගනී.

Host git.example.com
    HostName ssh-entry.example.net
    Port 2222
    User git
    HostKeyAlias git.example.com

HostKeyAlias නොමැතිව, OpenSSH සම්බන්ධ වන නාමය යටතේ සත්කාරක යතුර සොයයි, එබැවින් සටහන ගෙන යන අතර සෑම පරිශීලකයෙක්ම පළමු භාවිතයේදී යතුර වෙනස් වූ බවට අනතුරු ඇඟවීමක් දකී. අන්වර්ථය සැකසීම known-hosts සටහන් ස්ථිරව තබා ගනිමින් සම්බන්ධතාවය තවමත් රිලේ වෙත යයි.

මෙම අන්වර්ථය අදාළ වන්නේ SSH මත පදනම් වූ දුරස්ථ ගබඩා සඳහා පමණි. HTTPS Git URL එය විමසන්නේ නැත, සහ සාමාන්‍ය දුරස්ථ URL ඔබ ඇත්තටම සූදානම් කළ ප්‍රවාහනයට ගැළපිය යුතුය.

ඔබ නොකළ යුතු දෙය නම් අනතුරු ඇඟවීම ඉවත් කිරීම සඳහා සත්කාරක යතුර සත්‍යාපනය අබල කිරීමයි. එය යළි යැවීමේ අලුත්වැඩියාව කිසිදා ස්පර්ශ කිරීමට නොකියූ ආරක්ෂාවක් ඉවත් කරයි, සහ පෙනුමේ අපහසුව සැබෑ නිරාවරණයක් බවට පත් කරයි.

සෑම පැනීමක්ම වෙන් වෙන් වශයෙන් සත්‍යාපනය කරන්න

පොදු ශ්‍රාවකය තනිව පරීක්ෂා කරන්න, පසුව රිලේ සත්කාරකයේ සිට රිලේ-සිට-පසුපසට සම්බන්ධතාවය, සහ ඉන් පසුව පමණක් සේවාදායකය ආරම්භයේ සිට අවසානය දක්වා. එම පරීක්ෂණ තුනෙන් එකක් වෙනස් ස්ථරයක් බැහැර කරයි. එකක් මඟ හැරියොත් ඉතිරි ප්‍රතිඵල දෙක තෝරාගත නොහැක. නිරීක්ෂණ තුනක්, අසාර්ථකත්වය ජීවත් විය හැකි ස්ථාන තුනක්.

සෑම ප්‍රතිඵලයක් සමඟම ගමනාන්ත ලිපිනය, වරාය සහ පළමු ප්‍රොටෝකෝල බයිට තබා ගන්න. එම ත්‍රිත්වය දාර දෝෂයක් VPN මාර්ගගත කිරීමේ ගැටලුවකින් සහ SSH සත්‍යාපන අසාර්ථකත්වයකින් වෙන් කරයි, සහ එය අලුත්වැඩියාවක් සහ අනුමානයක් අතර වෙනසයි.

අවසාන වශයෙන්, අපේක්ෂිත නිරාවරණය ලේඛනගත කරන්න. පෞද්ගලික පසුපසට SSH ගෙන යන TCP රිලේ එකක් පොදු පරිධියේ හිතාමතා විවෘත කළ දොරකි, සහ එය අනෙකුත් ඕනෑම ආගමන සේවාවක් මෙන් සමාලෝචනයට සුදුසුය.

අදාළ ලිපි