SSH-vidaresendinga lyttar på lokal port 13306, men mysql koplar framleis til den lokale databasen—eller rapporterer at den lokale socketen manglar. På Unix kan ein MySQL-klient som får localhost velje ein Unix-socket i staden for TCP. Å oppgje ein port endrar ikkje nødvendigvis dette valet.

For ei eksisterande godkjend TCP-vidaresending, gjer protokollen eksplisitt:

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

Brukarnamnet er illustrativt; passordvalet ber om interaktiv inntasting. Kommandoen koplar til den lokale TCP-lyttaren i staden for ein Unix-socket.

Hald dei to innloggingane åtskilde

Ei fast SSH-rute kan ha denne forma:

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

SSH-tenaren på gatewayen når db.internal:3306. MySQL autentiserer deretter databasekontoen gjennom den bytestraumen. Ein godteken SSH-nøkkel gir ikkje innlogging i databasen, og kjeldegrenser i databasen ser tilkoplinga kome frå den sida av ruta.

Dette er ein fast TCP-adapter, ikkje ei SOCKS-innstilling som mysql brukar. Applikasjonen treng ingen SOCKS-forhandling fordi endepunktet til vidaresendinga har eitt førehandsoppgjeve mål.

Hald på den tiltenkte TLS-identiteten til databasen og sertifikatpolicyen der dei vert brukte. Å kople socketen til loopback gjer ikkje eit databasesertifikat gyldig for eit anna tenestenamn. Ei vellukka lokal TCP-tilkopling avgjer transportvalet, ikkje den seinare databaseautentiseringa eller TLS-kontrollane.

Relaterte artiklar