Penerusan SSH mendengarkan pada port lokal 13306, tetapi mysql tetap terhubung ke basis data lokal—atau melaporkan bahwa socket lokalnya hilang. Di Unix, klien MySQL yang diberi localhost dapat memilih socket Unix alih-alih TCP. Memberikan port tidak selalu mengubah pilihan itu.

Untuk penerusan TCP yang sudah disetujui, buat protokolnya eksplisit:

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

Nama pengguna hanya ilustrasi; opsi kata sandi meminta masukan interaktif. Perintah terhubung ke pendengar TCP lokal alih-alih socket Unix.

Jaga kedua login tetap terpisah

Rute SSH tetap dapat berbentuk seperti ini:

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

Server SSH gateway menjangkau db.internal:3306. MySQL kemudian mengautentikasi akun basis data melalui aliran byte tersebut. Kunci SSH yang diterima tidak memberikan login basis data, dan pembatasan sumber basis data melihat koneksi datang dari sisi rute itu.

Ini adalah adaptor TCP tetap, bukan pengaturan SOCKS yang dikonsumsi mysql. Aplikasi tidak memerlukan negosiasi SOCKS karena titik akhir penerusan memiliki satu target yang telah ditentukan.

Pertahankan identitas TLS basis data yang dimaksud dan kebijakan sertifikat di tempat keduanya digunakan. Menghubungkan socket ke loopback tidak membuat sertifikat basis data berlaku untuk nama layanan lain. Koneksi TCP lokal yang berhasil menentukan pilihan transport, bukan autentikasi basis data berikutnya atau pemeriksaan TLS.

Artikel terkait