Tato příručka vám ukáže, jak vytvořit zabezpečené připojení ke vzdálenému serveru MySQL nebo MariaDB z místního počítače pomocí tunelu SSH . To je užitečné, pokud chcete k práci na serveru používat nástroje pro správu na místním počítači.
<šablona x-if=visible><šablona x-if=$isMobile()>
Tunel SSH je šifrovaný tunel vytvořený prostřednictvím připojení protokolu SSH. Ke vzdálené komunikaci s databází MySQL můžete použít tunel SSH. Po provedení těchto pokynů se budete moci připojit k localhost
na vaší pracovní stanici pomocí vašeho oblíbeného nástroje pro správu MySQL. Připojení bude bezpečně přesměrováno na váš Linode přes internet.
Poznámka MariaDB je fork MySQL a je považován za náhradu za adrop-in. Přestože se tato příručka zmiňuje o MySQL, platí stejně i pro MariaDB.
Předpoklady
- MySQL je nainstalováno.
- MySQL je nakonfigurováno tak, aby naslouchalo na
localhost
(127.0.0.1). Toto je ve výchozím nastavení povoleno.
Jak vzdáleně přistupovat k MySQL vytvořením SSH tunelu pomocí PuTTY
Tato část vám ukáže, jak vytvořit tunel SSH do MySQL ve Windows pomocí nástroje PuTTY.
Nastavení tunelu
Nejprve musíte vytvořit základní připojení k vašemu Linode:
-
Stáhněte si PuTTY.
-
Uložte si PuTTY na plochu.
-
Začněte dvojitým kliknutím na soubor PuTTY – není třeba instalovat. Zobrazí se následující okno:
-
Zadejte název hostitele nebo IP adresu svého Linode do pole Název hostitele (nebo adresa IP) pole.
-
V nabídce vlevo přejděte na Připojení -> SSH -> Tunely .
-
V portu zdroje zadejte
3306
. -
V Cíl zadejte
127.0.0.1:3306
. Viz konečná konfigurace níže: -
Klikněte na Otevřít pro zahájení relace SSH.
-
Pokud jste se do tohoto systému pomocí PuTTY dosud nepřihlásili, obdržíte varování podobné následujícímu. Ověřte, že tento server je ten, ke kterému se chcete připojit, a klikněte na Ano :
Poznámka
Toto varování se zobrazuje, protože PuTTY chce, abyste ověřili, že server, ke kterému se přihlašujete, je tím, za koho se vydává. Je nepravděpodobné, ale možné, že by někdo mohl odposlouchávat vaše připojení a vydávat se za váš Linode. Chcete-li ověřit server, porovnejte otisk klíče zobrazený ve varování PuTTY – řetězec čísel a písmen začínající ssh-rsa na obrázku výše – s otiskem veřejného klíče vašeho Linode. Chcete-li získat otisk svého Linode, přihlaste se k Linode prostřednictvím konzole Lish (viz Konzole ve Správci Linode) a provedením následujícího příkazu:
ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
Klíčové otisky by se měly shodovat. Jakmile kliknete na Ano , nebudete dostávat další varování, pokud se klíč předložený PuTTY z nějakého důvodu nezmění; obvykle by k tomu mělo dojít pouze v případě, že přeinstalujete operační systém vzdáleného serveru. Pokud toto varování obdržíte znovu pro stejný Linode poté, co byl klíč již uložen do mezipaměti, neměli byste připojení důvěřovat a věci dále zkoumat.
-
Nasměrujte svého místního klienta MySQL na
localhost:3306
. Vaše připojení ke vzdálenému serveru MySQL bude šifrováno pomocí SSH, což vám umožní přistupovat k databázím bez spuštění MySQL na veřejné IP.
Vytvoření tunelu SSH v systému Mac OS X nebo Linux
Tato část vám ukáže, jak vytvořit tunel SSH do MySQL na Mac OS X nebo Linux.
-
Nainstalujte klienta MySQL. Instalace serveru MySQL je dodávána s instalací klienta. Chcete-li nainstalovat pouze klienta:
MacOS
brew install --cask mysql-shell
Ubuntu/Debian
sudo apt install mysql-client
-
Otevřete příkazový řádek a spusťte následující příkaz k otevření tunelu SSH.
ssh [email protected] -L 3306:127.0.0.1:3306 -N
Nahraďte <[email protected]> s vaším uživatelským jménem SSH a názvem hostitele nebo IP adresou vašeho serveru. Dlouhý řetězec čísel v příkazu uvádí místní IP, místní port, vzdálenou IP a vzdálený port oddělené dvojtečkami (: ).
-L
- připojí místní port ke vzdálenému hostitelskému příspěvku.-N
- znamená přesměrovací porty.Poznámka
Pokud již na své pracovní stanici používáte místní server MySQL, použijte jiný místní port (běžnou volbou je 3307). Váš nový příkaz by vypadal takto:
ssh [email protected] -L 3307:127.0.0.1:3306 -N
-
Otevřete nové okno terminálu. Nasměrujte svého místního klienta MySQL na
127.0.0.1:3306
s uživatelským jménem a heslem serveru MySQL.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
Vaše připojení ke vzdálenému serveru MySQL bude šifrováno pomocí SSH, což vám umožní přistupovat k databázím bez spuštění MySQL na veřejné IP.
-
Až budete připraveni ukončit připojení, stiskněte CTRL-C nebo zavřete okno příkazového řádku. Tím se uzavře tunel SSH.
Trvalá připojení SSH
Pokud potřebujete trvalý tunel SSH, zvažte použití autossh. autossh spouští a monitoruje připojení SSH a v případě potřeby jej restartuje.
Další informace
Další informace o tomto tématu můžete získat v následujících zdrojích. Přestože jsou poskytovány v naději, že budou užitečné, vezměte prosím na vědomí, že nemůžeme ručit za přesnost nebo aktuálnost externě hostovaných materiálů.
- Pomocí PuTTY
- Dokumentace MySQL
- Dokumentace MariaDB
- autossh