Penghantaran SSH mendengar pada port setempat 13306, tetapi mysql masih bersambung ke pangkalan data setempat—atau melaporkan bahawa soket setempatnya tiada. Pada Unix, klien MySQL yang diberi localhost boleh memilih soket Unix dan bukan TCP. Memberi port tidak semestinya mengubah pilihan itu.

Untuk penghantaran TCP yang telah diluluskan, jadikan protokol itu eksplisit:

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

Nama pengguna hanyalah contoh; pilihan kata laluan meminta input interaktif. Perintah itu bersambung ke pendengar TCP setempat dan bukan soket Unix.

Asingkan kedua-dua log masuk

Laluan SSH tetap boleh berbentuk begini:

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

Pelayan SSH gerbang mencapai db.internal:3306. MySQL kemudian mengesahkan akaun pangkalan data melalui aliran bait itu. Kunci SSH yang diterima tidak memberikan log masuk pangkalan data, dan sekatan sumber pangkalan data melihat sambungan datang dari sisi laluan itu.

Ini ialah penyesuai TCP tetap, bukan tetapan SOCKS yang digunakan oleh mysql. Aplikasi tidak memerlukan rundingan SOCKS kerana titik akhir penghantaran mempunyai satu sasaran yang telah ditetapkan.

Kekalkan identiti TLS pangkalan data yang dimaksudkan dan dasar sijil di tempat ia digunakan. Menyambung soket ke loopback tidak menjadikan sijil pangkalan data sah untuk nama perkhidmatan lain. Sambungan TCP setempat yang berjaya menentukan pilihan pengangkutan, bukan pengesahan pangkalan data kemudian atau pemeriksaan TLS.

Artikel berkaitan