Redirecționarea SSH ascultă pe portul local 13306, dar mysql se conectează în continuare la baza de date locală—sau raportează că socketul său local lipsește. Pe Unix, un client MySQL căruia i se dă localhost poate selecta un socket Unix în loc de TCP. Furnizarea unui port nu schimbă neapărat această alegere.

Pentru o redirecționare TCP aprobată existentă, faceți protocolul explicit:

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

Numele de utilizator este ilustrativ; opțiunea de parolă solicită o introducere interactivă. Comanda se conectează la ascultătorul TCP local în loc de un socket Unix.

Țineți cele două autentificări separate

O rută SSH fixă poate avea această formă:

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

Serverul SSH al gateway-ului ajunge la db.internal:3306. Apoi MySQL autentifică contul bazei de date prin acel flux de octeți. O cheie SSH acceptată nu acordă o autentificare la baza de date, iar restricțiile de sursă ale bazei de date văd conexiunea sosind din acea parte a rutei.

Acesta este un adaptor TCP fix, nu o setare SOCKS consumată de mysql. Aplicația nu are nevoie de negociere SOCKS deoarece punctul final al redirecționării are o singură țintă predefinită.

Păstrați identitatea TLS dorită a bazei de date și politica de certificate acolo unde sunt utilizate. Conectarea socketului la loopback nu face un certificat de bază de date valid pentru un alt nume de serviciu. O conexiune TCP locală reușită decide alegerea transportului, nu autentificarea ulterioară a bazei de date sau verificările TLS.

Articole similare