El reenviament SSH escolta al port local 13306, però mysql encara es connecta a la base de dades local—o informa que li falta el sòcol local. A Unix, un client MySQL al qual es dona localhost pot triar un sòcol Unix en lloc de TCP. Proporcionar un port no canvia necessàriament aquesta tria.

Per a un reenviament TCP aprovat existent, fes explícit el protocol:

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

El nom d'usuari és il·lustratiu; l'opció de contrasenya demana una entrada interactiva. L'ordre es connecta a l'oient TCP local en lloc d'un sòcol Unix.

Mantén separats els dos inicis de sessió

Una ruta SSH fixa pot tenir aquesta forma:

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

El servidor SSH de la passarel·la arriba a db.internal:3306. Després MySQL autentica el compte de la base de dades a través d'aquest flux de bytes. Una clau SSH acceptada no atorga un inici de sessió a la base de dades, i les restriccions d'origen de la base de dades veuen la connexió arribant des d'aquell costat de la ruta.

Això és un adaptador TCP fix, no un paràmetre SOCKS que consumeixi mysql. L'aplicació no necessita negociació SOCKS perquè el punt final del reenviament té un objectiu predefinit.

Conserva la identitat TLS de la base de dades i la política de certificats allà on s'utilitzin. Connectar el sòcol a loopback no fa que un certificat de base de dades sigui vàlid per a un altre nom de servei. Una connexió TCP local correcta resol la tria de transport, no l'autenticació posterior de la base de dades ni les comprovacions TLS.

Articles relacionats