Deze handleiding laat u zien hoe u een veilige verbinding kunt maken met uw externe MySQL- of MariaDB-server vanaf uw lokale computer, met behulp van een SSH-tunnel . Dit is handig als u beheertools op uw lokale computer wilt gebruiken om werk op uw server te doen.
Een SSH-tunnel is een versleutelde tunnel die is gemaakt via een SSH-protocolverbinding. U kunt een SSH-tunnel gebruiken om op afstand met de MySQL-database te communiceren. Na het volgen van deze instructies kunt u verbinding maken met localhost
op uw werkstation met uw favoriete MySQL-beheertool. De verbinding wordt veilig via internet doorgestuurd naar uw Linode.
Opmerking MariaDB is een vork van MySQL en wordt beschouwd als adrop-in-vervanging. Hoewel deze handleiding verwijst naar MySQL, is deze ook van toepassing op MariaDB.
Vereisten
- MySQL is geïnstalleerd.
- MySQL is geconfigureerd om te luisteren op
localhost
(127.0.0.1). Dit is standaard ingeschakeld.
Op afstand toegang krijgen tot MySQL door een SSH-tunnel te maken met PuTTY
In dit gedeelte wordt uitgelegd hoe u een SSH-tunnel naar MySQL op Windows maakt met behulp van de PuTTY-tool.
De tunnel opzetten
Eerst moet u een basisverbinding met uw Linode tot stand brengen:
-
DownloadPuTTY.
-
Sla PuTTY op uw bureaublad op.
-
Dubbelklik op het PuTTY-bestand om te beginnen - installeren is niet nodig. U ziet het volgende venster:
-
Voer de hostnaam of het IP-adres van uw Linode in bij Hostnaam (of IP-adres) veld.
-
Ga in het linkermenu naar Verbinding -> SSH -> Tunnels .
-
In de Bronpoort veld, voer
3306
. in . -
In de Bestemming veld, voer
127.0.0.1:3306
. in . Zie de definitieve configuratie hieronder: -
Klik op Openen om de SSH-sessie te starten.
-
Als u zich nog niet eerder met PuTTY op dit systeem hebt aangemeld, ontvangt u een waarschuwing die lijkt op de volgende. Controleer of deze server de server is waarmee u verbinding wilt maken en klik vervolgens op Ja :
Opmerking
Deze waarschuwing verschijnt omdat PuTTY wil dat u controleert of de server waarop u zich aanmeldt, is wie hij zegt dat hij is. Het is onwaarschijnlijk, maar mogelijk dat iemand uw verbinding afluistert en zich voordoet als uw Linode. Om de server te verifiëren, vergelijkt u de sleutelvingerafdruk die wordt weergegeven in de PuTTY-waarschuwing - de reeks cijfers en letters die beginnen met ssh-rsa in de afbeelding hierboven - met de openbare sleutelvingerafdruk van uw Linode. Om de vingerafdruk van uw Linode te krijgen, logt u in op uw Linode via de Lish-console (zie de Console tabblad in de Linode Manager) en voer het volgende commando uit:
ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
De belangrijkste vingerafdrukken moeten overeenkomen. Zodra u op Ja . klikt , u ontvangt geen verdere waarschuwingen tenzij de sleutel die aan PuTTY wordt gepresenteerd om de een of andere reden verandert; normaal gesproken zou dit alleen moeten gebeuren als u het besturingssysteem van de externe server opnieuw installeert. Als u deze waarschuwing opnieuw ontvangt voor dezelfde Linode nadat de sleutel al in de cache is opgeslagen, moet u de verbinding niet vertrouwen en de zaken verder onderzoeken.
-
Stuur uw lokale MySQL-client naar
localhost:3306
. Uw verbinding met de externe MySQL-server wordt versleuteld via SSH, zodat u toegang krijgt tot uw databases zonder MySQL op een openbaar IP-adres uit te voeren.
Maak een SSH-tunnel op Mac OS X of Linux
In dit gedeelte wordt uitgelegd hoe u een SSH-tunnel naar MySQL op Mac OS X of Linux maakt.
-
Installeer een MySQL-client. Het installeren van de MySQL-server wordt voorverpakt geleverd met een installatie van de client. Alleen de client installeren:
MacOS
brew install --cask mysql-shell
Ubuntu/Debian
sudo apt install mysql-client
-
Open een opdrachtprompt en voer de volgende opdracht uit om de SSH-tunnel te openen.
ssh [email protected] -L 3306:127.0.0.1:3306 -N
Vervang <[email protected]> met uw SSH-gebruikersnaam en de hostnaam of het IP-adres van uw server. De lange reeks cijfers in de opdracht geeft een overzicht van het lokale IP-adres, de lokale poort, het externe IP-adres en de externe poort, gescheiden door dubbele punten (: ).
-L
- bindt een lokale poort aan de externe hostpost.-N
- betekent poorten doorsturen.Opmerking
Als je al een lokale MySQL-server op je werkstation gebruikt, gebruik dan een andere lokale poort (3307 is een gebruikelijke keuze). Uw nieuwe opdracht zou er als volgt uitzien:
ssh [email protected] -L 3307:127.0.0.1:3306 -N
-
Open een nieuw terminalvenster. Stuur uw lokale MySQL-client naar
127.0.0.1:3306
met de gebruikersnaam en het wachtwoord van de MySQL-server.MacOS
mysqlsh --host=127.0.0.1 --port=3306 -u user -p
Ubuntu/Debian
mysql --host=127.0.0.1 --port=3306 -u user -p
Uw verbinding met de externe MySQL-server wordt versleuteld via SSH, zodat u toegang krijgt tot uw databases zonder MySQL op een openbaar IP-adres uit te voeren.
-
Wanneer je klaar bent om de verbinding te verbreken, geef je een CTRL-C commando of sluit het opdrachtpromptvenster. Hierdoor wordt de SSH-tunnel gesloten.
Persistente SSH-verbindingen
Als je een persistente SSH-tunnel nodig hebt, overweeg dan om autossh te gebruiken. autossh start en bewaakt een SSH-verbinding en herstart deze indien nodig.
Meer informatie
U kunt de volgende bronnen raadplegen voor aanvullende informatie over dit onderwerp. Hoewel deze worden verstrekt in de hoop dat ze nuttig zullen zijn, houd er rekening mee dat we niet kunnen instaan voor de nauwkeurigheid of tijdigheid van extern gehost materiaal.
- PuTTY gebruiken
- MySQL-documentatie
- MariaDB-documentatie
- autossh