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.

Povezani članci