sql >> Databáze >  >> RDS >> Mysql

Vytvořte tunel SSH pro vzdálený přístup k MySQL

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:

  1. Stáhněte si PuTTY.

  2. Uložte si PuTTY na plochu.

  3. Začněte dvojitým kliknutím na soubor PuTTY – není třeba instalovat. Zobrazí se následující okno:

  4. Zadejte název hostitele nebo IP adresu svého Linode do pole Název hostitele (nebo adresa IP) pole.

  5. V nabídce vlevo přejděte na Připojení -> SSH -> Tunely .

  6. V portu zdroje zadejte 3306 .

  7. V Cíl zadejte 127.0.0.1:3306 . Viz konečná konfigurace níže:

  8. Klikněte na Otevřít pro zahájení relace SSH.

  9. 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.

  10. 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.

  1. 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
    
  2. 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
    
  3. 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.

  4. 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

  1. Problémy s výkonem u SQL Server 2012 Enterprise Edition v rámci licence CAL

  2. Použití Salesforce SOQL z Linuxu

  3. Oracle:existuje nějaký logický důvod, proč nepoužívat paralelní spouštění s poddotazy v seznamu SELECT?

  4. Typy kurzoru serveru SQL Server – pouze vpřed dynamický kurzor | Kurz SQL Server / Kurz TSQL