Saa MySQL käyttämään edelleenohjattua TCP-porttia
Vältä paikallisen Unix-socketin valintaa, kun MySQL-asiakasohjelman on tarkoitus yhdistää SSH TCP -edelleenohjauksen kautta.
SSH-edelleenohjaus kuuntelee paikallisella portilla 13306, mutta mysql yhdistää edelleen paikalliseen tietokantaan—tai ilmoittaa, että sen paikallinen socket puuttuu. Unixissa MySQL-asiakasohjelma, jolle annetaan localhost, voi valita Unix-socketin TCP:n sijaan. Portin antaminen ei välttämättä muuta tätä valintaa.
Tee protokolla selväksi olemassa olevalle hyväksytylle TCP-edelleenohjaukselle:
mysql --protocol=TCP --host=127.0.0.1 --port=13306 \
--user=dbuser --password
Käyttäjänimi on havainnollistava; salasana-asetus pyytää vuorovaikutteista syötettä. Komento yhdistää paikalliseen TCP-kuuntelijaan Unix-socketin sijaan.
Pidä kaksi kirjautumista erillään
Kiinteä SSH-reitti voi olla tällainen:
ssh -N -L 127.0.0.1:13306:db.internal:3306 [email protected]
Yhdyskäytävän SSH-palvelin saavuttaa osoitteen db.internal:3306. Sen jälkeen MySQL todentaa tietokantatilin kyseisen tavuvirran kautta. Hyväksytty SSH-avain ei anna tietokantakirjautumista, ja tietokannan lähderajoitukset näkevät yhteyden saapuvan reitin siltä puolelta.
Tämä on kiinteä TCP-sovitin, ei mysql:n käyttämä SOCKS-asetus. Sovellus ei tarvitse SOCKS-neuvottelua, koska edelleenohjauksen päätepisteellä on yksi ennalta määritetty kohde.
Säilytä tietokannan aiottu TLS-identiteetti ja varmennepolitiikka siellä, missä niitä käytetään. Socketin yhdistäminen loopbackiin ei tee tietokantavarmennetta kelvolliseksi toiselle palvelunimelle. Onnistunut paikallinen TCP-yhteys ratkaisee siirtotavan valinnan, ei myöhempää tietokannan todentamista tai TLS-tarkistuksia.