Natjerajte MySQL da koristi proslijeđeni TCP port
Izbjegnite odabir lokalnog Unix socketa kada se MySQL klijent treba povezati preko SSH TCP prosljeđivanja.
SSH prosljeđivanje sluša na lokalnom portu 13306, ali mysql se i dalje povezuje s lokalnom bazom podataka—ili prijavljuje da nedostaje njegov lokalni socket. Na Unixu MySQL klijent kojem se zada localhost može odabrati Unix socket umjesto TCP-a. Navođenje porta ne mijenja nužno taj odabir.
Za postojeće odobreno TCP prosljeđivanje učinite protokol eksplicitnim:
mysql --protocol=TCP --host=127.0.0.1 --port=13306 \
--user=dbuser --password
Korisničko ime je samo ilustrativno; opcija lozinke traži interaktivni unos. Naredba se povezuje s lokalnim TCP slušateljem umjesto s Unix socketom.
Držite dvije prijave odvojenima
Fiksna SSH ruta može imati ovaj oblik:
ssh -N -L 127.0.0.1:13306:db.internal:3306 [email protected]
SSH poslužitelj pristupnika doseže db.internal:3306. MySQL zatim autentificira račun baze podataka kroz taj tok bajtova. Prihvaćeni SSH ključ ne daje prijavu u bazu podataka, a ograničenja izvora baze podataka vide da veza dolazi s te strane rute.
Ovo je fiksni TCP adapter, a ne SOCKS postavka koju troši mysql. Aplikaciji nije potrebno SOCKS pregovaranje jer završna točka prosljeđivanja ima jedan unaprijed definiran cilj.
Zadržite namjeravani TLS identitet baze podataka i politiku certifikata gdje se koriste. Povezivanje socketa na loopback ne čini certifikat baze podataka valjanim za drugo ime usluge. Uspješna lokalna TCP veza rješava izbor prijenosa, a ne kasniju autentifikaciju baze podataka ni TLS provjere.