SSH forward počúva na miestnom porte 13306, ale mysql sa stále pripája k miestnej databáze—alebo hlási, že jeho miestny socket chýba. Na Unixe môže klient MySQL, ktorému je zadaný localhost, zvoliť Unix socket namiesto TCP. Zadanie portu túto voľbu nemusí zmeniť.

Pri existujúcom schválenom TCP forwarde urobte protokol explicitným:

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

Používateľské meno je ilustratívne; možnosť hesla si vyžiada interaktívny vstup. Príkaz sa pripája k miestnemu TCP listeneru namiesto Unix socketu.

Držte oba prihlásenia oddelene

Pevná SSH trasa môže mať tento tvar:

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

SSH server brány dosiahne db.internal:3306. MySQL potom overí účet databázy cez tento bajtový tok. Prijatý SSH kľúč neposkytuje prihlásenie do databázy a obmedzenia zdroja databázy vidia pripojenie prichádzať z tej strany trasy.

Toto je pevný TCP adaptér, nie nastavenie SOCKS spotrebúvané mysql. Aplikácia nepotrebuje vyjednávanie SOCKS, pretože koncový bod forwardu má jeden vopred definovaný cieľ.

Zachovajte zamýšľanú identitu TLS databázy a politiku certifikátov tam, kde sa používajú. Pripojenie socketu k loopbacku neurobí certifikát databázy platným pre iný názov služby. Úspešné miestne TCP spojenie rozhoduje o voľbe transportu, nie o neskoršej autentifikácii databázy ani kontrolách TLS.

Súvisiace články