SSH ફોરવર્ડ સ્થાનિક પોર્ટ 13306 પર સાંભળે છે, પણ mysql હજી પણ સ્થાનિક ડેટાબેઝ સાથે જોડાય છે—અથવા જણાવે છે કે તેનું સ્થાનિક સોકેટ ખૂટે છે. Unix પર, localhost આપેલો MySQL ક્લાયન્ટ TCPને બદલે Unix સોકેટ પસંદ કરી શકે છે. પોર્ટ આપવાથી તે પસંદગી જરૂરી રીતે બદલાતી નથી.

હાલના મંજૂર TCP ફોરવર્ડ માટે, પ્રોટોકોલ સ્પષ્ટ કરો:

mysql --protocol=TCP --host=127.0.0.1 --port=13306 \
  --user=dbuser --password

વપરાશકર્તાનામ ઉદાહરણ માટે છે; પાસવર્ડ વિકલ્પ ઇન્ટરેક્ટિવ પ્રોમ્પ્ટ માંગે છે. આદેશ Unix સોકેટને બદલે સ્થાનિક TCP શ્રોતા સાથે જોડાય છે.

બે લોગિન અલગ રાખો

નિશ્ચિત SSH માર્ગ આ સ્વરૂપ ધરાવી શકે છે:

ssh -N -L 127.0.0.1:13306:db.internal:3306 [email protected]

ગેટવેનો SSH સર્વર db.internal:3306 સુધી પહોંચે છે. પછી MySQL તે બાઇટ સ્ટ્રીમ દ્વારા ડેટાબેઝ ખાતાને પ્રમાણિત કરે છે. સ્વીકૃત SSH કી ડેટાબેઝ લોગિન આપતી નથી, અને ડેટાબેઝના સ્રોત નિયંત્રણો જુએ છે કે કનેક્શન માર્ગની તે બાજુથી આવે છે.

આ નિશ્ચિત TCP એડાપ્ટર છે, mysql દ્વારા વપરાતું SOCKS સેટિંગ નથી. એપ્લિકેશનને SOCKS વાટાઘાટની જરૂર નથી કારણ કે ફોરવર્ડિંગ એન્ડપોઇન્ટનું એક પૂર્વનિર્ધારિત લક્ષ્ય છે.

જ્યાં વપરાય ત્યાં ઇચ્છિત ડેટાબેઝ TLS ઓળખ અને પ્રમાણપત્ર નીતિ જાળવો. સોકેટને loopback સાથે જોડવાથી ડેટાબેઝ પ્રમાણપત્ર બીજા સેવા નામ માટે માન્ય બનતું નથી. સફળ સ્થાનિક TCP કનેક્શન પરિવહનની પસંદગી નક્કી કરે છે, પછીના ડેટાબેઝ પ્રમાણીકરણ કે TLS ચકાસણીઓ નહીં.

સંબંધિત લેખો