උමග ඉහළට එයි, QGIS සම්බන්ධ වේ, සහ පිවිසුම දත්ත සමුදායේ සත්කාරකය වෙනුවට 127.0.0.1 නම් කරන සහතික දෝෂයකින් මිය යයි. ඊළඟ පෙළඹවීම sslmode ලිහිල් කිරීමයි, එය පරීක්ෂාව නිහඬ කර ඔබ මුලින්ම අවශ්‍ය කළ අනන්‍යතා සහතිකය ඉවතට විසි කරයි. සැබෑ ගැටලුව වන්නේ දේශීය තොටුව සහ සේවාදායකයේ නාමය එකම කොටසේ ගබඩා වීමයි. libpq සේවා පිවිසුමක් ඒවා වෙන් කරයි, එබැවින් සොකට් යැවූ තොටුවට යන අතර TLS තවමත් සහතිකයේ සටහන් වූ නාමය තහවුරු කරයි.

සේවාලාභියා සම්බන්ධ වන බව සිතන්නේ කුමකට ද

sslmode=verify-full යටතේ libpq සේවාදායකය ඉදිරිපත් කරන සහතිකය ඉල්ලා සිටි සත්කාරක නාමය සමඟ සසඳයි. එම නාමය loopback ලිපිනයක් වන විට, සහතිකය සැබෑ දත්ත සමුදායේ සත්කාරකයට වලංගු වුවත් සැසඳීම අසාර්ථක වේ. SSH යැවීම වෙනස් කරන්නේ කුමන සොකට් බයිට් ගෙන යන්නේ ද යන්නයි, සේවාලාභියා බලාපොරොත්තු විය යුතු අනන්‍යතාව නොවේ. මෙම අදහස් දෙක වෙන් වූ පසු, දෝෂය තවදුරටත් TLS දෝෂයක් ලෙස නොපෙනේ.

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

යැවීම loopback වෙත පමණක් බඳින්න

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

ssh -N -L 127.0.0.1:15432:127.0.0.1:5432 [email protected]

දෙවන කෝලනයට පසු ගමනාන්තය SSH සේවාදායකයේ පැත්තෙන් විසඳනු ලැබේ, එබැවින් මෙම උදාහරණය උපකල්පනය කරන්නේ PostgreSQL sshd ඇති එකම සත්කාරකයේ ඇති බවයි; වෙනත් යන්ත්‍රයක දත්ත සමුදායකට එම ලිපිනය සහ එහි අවසර අවශ්‍ය වේ. සැසිය -N සමඟ ආරම්භ කරන්න, එවිට කිසිදු ෂෙල් එකක් විවෘත නොවේ, සත්කාරක යතුරු තහවුරු කිරීමට අත නොගසන්න, සහ QGIS ට දොස් පැවරීමට පෙර ශ්‍රාවකය දිස්වන බව තහවුරු කරන්න. තොටුව දැනටමත් භාවිතයේ නම්, යැවීම විමසුමේදී නොව ආරම්භයේදීම අසාර්ථක වේ.

නාමය සහ සොකට් එකම සේවා පිවිසුමක තබන්න

සේවා ගොනුවක් එකම සම්බන්ධතාවයට තහවුරු කිරීමේ නාමයක් සහ වෙනස් සොකට් ගමනාන්තයක් ගෙන යාමට ඉඩ දෙයි. පිවිසුම libpq සේවා සොයන තැන ගබඩා කරන්න, නැතහොත් PGSERVICEFILE එය වෙත යොමු කරන්න.

[gis-via-ssh]
host=db.geo.example
hostaddr=127.0.0.1
port=15432
dbname=gisdb
user=gis_reader
sslmode=verify-full
gssencmode=disable
sslrootcert=/path/to/approved-root.crt

මෙහි host සහතික පරීක්ෂා සඳහා භාවිත කරන අනන්‍යතාව රඳවා ගන්නා අතර hostaddr පැකට් යැවූ loopback තොටුවට යවයි, සහ මෙම සැකැස්ම ක්‍රියා කිරීමට දෙකම අවශ්‍ය වේ. gssencmode=disable වෙනත් ආකාරයකට පළමුව GSSAPI සංකේතනය සාකච්ඡා කරන ගොඩනැගීම්වල වැදගත් වේ, එම මාර්ගය දැන් සකස් කළ TLS සැකසුම් නොසලකා හරින බැවිනි. QGIS හි PostgreSQL සම්බන්ධතා සංවාදයෙන් නාමයෙන් සේවාවට යොමු වන්න, සහ මුරපදය බෙදාගත් ගොනුවක් තුළ නොව සාමාන්‍ය විමසුම හරහා ලබා දෙන්න. ඉහත නාම සහ මාර්ග ස්ථාන දරන්නන් ය; ඒවා ඔබේම අනුමත අගයන් සමඟ ප්‍රතිස්ථාපනය කරන්න.

උමගට පසු PostgreSQL තවමත් පරීක්ෂා කරන්නේ කුමක් ද

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

psql "service=gis-via-ssh" -c "select inet_server_addr(), current_user"

වැඩ අවසන් වූ විට යැවීම් සැසිය වසන්න; දේශීය පිවිසුම එවිට ක්‍රියා කිරීම නවත්වන අතර වෙන කිසිවක් වෙනස් නොවේ. දත්ත සමුදායට ඇති එක් මාර්ගයක් සම්පූර්ණ GIS සේවාලාභියාට VPN එකක් නොවේ, සහ එය VPN එකක් ලෙස සැලකීම ඊළඟ සම්බන්ධතාවය වැරදි ලෙස රෝග විනිශ්චය කිරීමට හේතු වේ.

අදාළ ලිපි