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 провере.

Повезани чланци