Můžeme bezpečně přistupovat k MySQL na vzdáleném systému připojením MySQL přes SSH tunel. Tento tutoriál poskytuje kroky potřebné pro vzdálené připojení k serveru MySQL přes tunel SSH pomocí Putty na Windows a SSH na Linuxu. Ukazuje, jak přesměrovat místní port MySQL, tj. 3306, na vzdálený port MySQL, tj. 3306 přes port SSH 22 vzdáleného systému. To zajišťuje, že komunikujeme bezpečně se vzdáleným serverem přes port 22, připojením místního portu 3306 k portu 3306 na vzdáleném serveru.
Předpoklady
Vzdálený server s nainstalovaným serverem MySQL. Můžete sledovat Jak nainstalovat MySQL 8 na Ubuntu 20.04 LTS.
Také se ujistěte, že port 22 je otevřený a port 3306 je blokován firewallem na vzdáleném systému se serverem MySQL. Tento tutoriál také předpokládá, že server MySQL neběží na místním systému. To zajišťuje, že port 3306 na místním systému je volný pro přesměrování portů.
Potřebujeme také SSH přístup k systému, na kterém je nainstalován a spuštěn MySQL server. Můžeme použít buď uživatelské jméno a heslo SSH nebo Uživatelské jméno a klíč SSH pro připojení ke vzdálenému systému.
Nainstalujte Putty na Windows 10
Putty můžeme použít na systémech Windows pro přístup k serveru MySQL nainstalovanému na vzdáleném serveru. V případě, že používáte systém založený na Linuxu, můžete přejít do sekce SSH.
Otevřete oficiální stránku stahování Putty a stáhněte si instalační program MSI, jak je zvýrazněno na obr. 1.
Obr. 1
Můžeme také použít spustitelný soubor Putty bez jeho instalace. Přejděte dolů na stránku stahování a stáhněte si spustitelný soubor.
Nyní spusťte Putty. Výchozí možnosti Putty by měly být podobné jako na obr. 2.
Obr. 2
Zabezpečené připojení k MySQL pomocí Putty
Tato část obsahuje kroky k použití Putty k bezpečnému připojení k MySQL přes tunel SSH ze vzdáleného systému. Nyní vyplňte podrobnosti o vzdáleném hostiteli, jak je znázorněno na obr. 3.
Obr. 3
Klikněte také na Připojení -> SSH -> Tunely jak je zvýrazněno na obr. 3. Nyní vyplňte podrobnosti o přesměrování portu SSH, jak je znázorněno na obr. 4. Zdrojový port by měl být nastaven na 3306 a Cíl by měl být nastaven na 127.0.0.1:3306 .
Obr. 4
Klikněte na tlačítko Přidat po vyplnění Source port a Destination. Aktualizuje Přesměrované porty jak je znázorněno na obr. 4. Také klikněte na možnost Auth a vyberte klíč SSH, jak je znázorněno na obr. 5. Ujistěte se, že jste vygenerovali soukromý klíč pomocí Puttygen.
Obr. 5
Nyní klikněte na tlačítko Otevřít pro otevření spojení. Poprvé se zobrazí bezpečnostní upozornění, jak je znázorněno na obr. 6.
Obr. 6
Klikněte na tlačítko Ano přijmout spojení. Pokud jste nastavili při generování soukromého klíče, požádá o heslo. Po úspěšném připojení se zobrazí podrobnosti o vzdáleném systému, jak je znázorněno na obr. 7.
Obr. 7
Kromě připojení přes SSH také předal místní port 3306 na port 3306 na vzdáleném serveru. Nezavírejte Putty, protože udržuje tunel SSH otevřený pro vzdálený server. Nyní spusťte libovolného klienta MySQL a zkuste se připojit ke vzdálenému serveru MySQL. Pro demonstrační účely jsem použil MySQL Workbench. Domovská obrazovka Workbench by měla být podobná obrázku 8. Můžete také sledovat Používání Workbench k připojení ke vzdálenému serveru MySQL přes SSH tunel.
Obr. 8
Nyní klikněte na ikonu plus vytvořte nové Místní připojení jak je zvýrazněno na obr. 8. Zobrazí se možnosti Přidat připojení, jak je znázorněno na obr. 9.
Obr. 9
Zadejte název připojení a ponechte název hostitele jako 127.0.0.1 a port jako 3306, jak je znázorněno na obr. 9. Nyní klikněte na Testovat připojení a otestujte připojení ke vzdálenému serveru MySQL přes tunel SSH. V případě, že jste jej neuložili v trezoru, požádá o zadání hesla, jak je znázorněno na obr. 10.
Obr. 10
Nyní vyplňte heslo a klikněte na tlačítko OK pro testování připojení. Mělo by se zobrazit hlášení o úspěchu připojení, jak je znázorněno na obr. 11.
Obr. 11
Nyní klikněte na tlačítko OK zavřete zprávu o připojení a znovu klikněte na tlačítko OK zavřete průvodce připojením. Přidá připojení do knihovny připojení, jak je znázorněno na obr. 12.
Obr. 12
Nyní klikněte na nově přidané připojení. Měl by se připojit ke vzdálenému serveru a vypsat seznam databází vzdáleného serveru MySQL, jak je znázorněno na obr. 13.
Obr. 13
Nyní můžeme pracovat na vzdáleném serveru MySQL pomocí Workbench na lokálním systému. Po dokončení práce na vzdáleném serveru MySQL také zavřete Workbench a Putty, abyste ukončili připojení.
Zabezpečené připojení k MySQL pomocí SSH
Ke vzdálenému serveru MySQL se můžeme připojit přesměrováním místního portu 3306 na vzdálený port 3306 pomocí příkazu SSH, jak je uvedeno níže. Podobně jako v předchozí části se ujistěte, že je místní port 3306 volný.
Poznámky :Níže uvedené příkazy byly testovány na Ubuntu Desktop. Kroky a příkazy by měly být podobné na jiných systémech Linux.
# Shutdown local MySQL - Else use a different local port
sudo service mysql stop
# Install MySQL Client - If required
sudo apt install mysql-client
# Port Forwarding - Command
ssh -N -L 3306:127.0.0.1:3306 [USER]@[SERVER_IP]
# OR
ssh -N -L 3306:127.0.0.1:3306 -i [SSH Key] [USER]@[SERVER_IP]
# Port Forwarding - Example
ssh -N -L 3306:127.0.0.1:3306 [email protected]
# OR
ssh -N -L 3306:127.0.0.1:3306 -i example.pem [email protected]
Výše uvedené příkazy otevřou SSH tunel a propojí lokální port 3306 se vzdáleným portem 3306. Nyní se můžeme připojit ke vzdálenému MySQL serveru pomocí MySQL klienta. Chcete-li použít MySQL Workbench nainstalovaný na místním systému, můžete se podívat na předchozí část.
Podívejte se také na obr. 14 a obr. 15 pro otevření tunelu SSH a připojení ke vzdálenému serveru MySQL.
Obr. 14
Obr. 15
Shrnutí
Tento tutoriál poskytuje kroky potřebné k připojení ke vzdálenému serveru MySQL přes tunel SSH pro systémy Windows a Linux.