SSH препращането слуша на локален порт 13306, но mysql все още се свързва с локалната база данни—или съобщава, че локалният му сокет липсва. Под Unix MySQL клиент, на който е даден localhost, може да избере Unix сокет вместо TCP. Посочването на порт не променя непременно този избор.

За съществуващо одобрено TCP препращане направете протокола явен:

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

Потребителското име е само илюстративно; опцията за парола иска интерактивно въвеждане. Командата се свързва с локалния TCP слушател вместо с Unix сокет.

Дръжте двата входа отделно

Фиксиран SSH маршрут може да има тази форма:

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

SSH сървърът на шлюза достига db.internal:3306. След това MySQL удостоверява акаунта за базата данни през този байтов поток. Приет SSH ключ не дава вход в базата данни, а ограниченията за източник на базата данни виждат връзката идваща от тази страна на маршрута.

Това е фиксиран TCP адаптер, а не настройка на SOCKS, консумирана от mysql. Приложението не се нуждае от SOCKS преговори, защото крайната точка на препращането има една предварително определена цел.

Запазете предвидената TLS идентичност на базата данни и политиката за сертификати, където се използват. Свързването на сокета към loopback не прави сертификат на база данни валиден за различно име на услуга. Успешна локална TCP връзка решава избора на транспорт, а не последващото удостоверяване на базата данни или TLS проверките.

Подобни статии