Натерајте MySQL да користи прослеђени TCP порт
Избегните избор локалног Unix сокета када MySQL клијент треба да се повеже преко SSH TCP прослеђивања.
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 провере.