SSH yönlendirmesi yerel 13306 bağlantı noktasını dinler, ancak mysql hâlâ yerel veritabanına bağlanır—ya da yerel soketinin eksik olduğunu bildirir. Unix'te localhost verilen bir MySQL istemcisi TCP yerine Unix soketi seçebilir. Bir bağlantı noktası vermek bu seçimi mutlaka değiştirmez.

Mevcut onaylı bir TCP yönlendirmesi için protokolü açık hale getirin:

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

Kullanıcı adı yalnızca örnektir; parola seçeneği etkileşimli giriş ister. Komut, Unix soketi yerine yerel TCP dinleyicisine bağlanır.

İki oturum açmayı ayrı tutun

Sabit bir SSH rotası şu biçimde olabilir:

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

Geçidin SSH sunucusu db.internal:3306 adresine ulaşır. Ardından MySQL, veritabanı hesabını bu bayt akışı üzerinden doğrular. Kabul edilen bir SSH anahtarı veritabanı oturumu açmaz ve veritabanının kaynak kısıtlamaları bağlantının rotanın o tarafından geldiğini görür.

Bu sabit bir TCP bağdaştırıcısıdır, mysql'in tükettiği bir SOCKS ayarı değildir. Yönlendirme uç noktasının önceden tanımlanmış tek bir hedefi olduğu için uygulamanın SOCKS görüşmesine ihtiyacı yoktur.

Kullanıldıkları yerlerde veritabanının amaçlanan TLS kimliğini ve sertifika ilkesini koruyun. Soketi loopback'e bağlamak, bir veritabanı sertifikasını farklı bir hizmet adı için geçerli kılmaz. Başarılı bir yerel TCP bağlantısı taşıma seçimini belirler, sonraki veritabanı kimlik doğrulamasını ya da TLS denetimlerini değil.

İlgili makaleler