it-swarm-eu.dev

Nelze se připojit k databázi MySQL přes SSH pomocí Workbench

Snažím se připojit k mé databázi tunelem SSH z jednoho z našich serverů webových aplikací pomocí MySQL Workbench. Zde je základní konfigurace; Všimněte si, že jsem změnil některé hodnoty na snímku z bezpečnostních důvodů.

Workbench screenshot

Problém je, že při každém pokusu o připojení přes tunel SSH z jednoho z našich aplikačních serverů se zobrazí následující chyba:

Nepodařilo se připojit k us-east-1.amazonaws.com tunelem SSH na adrese computer.amazonaws.com s uživatelem social_shop_prod. Nelze se připojit k serveru MySQL na serveru 127.0.0.1.

Pokud však na SSH použiji stejná pověření pomocí následujícího příkazového řádku:

mysql -u social_shop_prod -h us-east-1.amazonaws.com -p

Dokážu se úspěšně připojit a získat interaktivní příkaz MySQL Prompt.

Mluvili jsme zde se zbytkem mého vývojového týmu a nikdo z nás nemůže zjistit, proč nemůžu tunelovat přes SSH z našich aplikačních serverů pomocí Workbench; ale když se SSH připojím k jednomu z našich aplikačních serverů a připojím se k MySQL prostřednictvím příkazového řádku; Můžu se úspěšně připojit.

A proč se snaží připojit přes 127.0.0.1? V konfiguraci jsem to nespecifikoval; ani můj soubor hostitelů nepřesměruje níže uvedené domény na tuto IP.

Jakýkoli konstruktivní vstup je velmi oceňován.

10
Frank Rosario

Protože se připojujete přes tunel SSH, znamená to, že port MySQL 3306 z adresy us-east-1.amazonaws.com se místně otevírá ve vašem počítači. Ip adresa vašeho počítače je 127.0.0.1 nebo localhost. Když se připojíte k serveru mysql na adrese us-east-1.amazonaws.com, skutečně k němu přistupujete prostřednictvím serveru 127.0.0.1, tj. Z vašeho počítače. Pokud máte v počítači otevřen jiný tunel nebo pokud je v počítači spuštěna MySQL, může to znamenat, že jiný server MySQL odmítá vaše pokusy o ověření

Můžete vyzkoušet několik testů:

1. Na jakých portech posloucháte počítač se systémem Windows

Z příkazového řádku: netstat -a (vypíše všechny otevřené porty)

V linuxu by to bylo: netstat -tlpn

2. Základní test připojení

Z příkazového řádku systému DOS nebo linuxové konzole: telnet 127.0.0.1 3306

Pokud máte čas, nebo nějaký jiný program odpoví, váš tunel není správně nastaven.

. Změňte číslo portu, které MySQL Workbench lokálně otevírá

Předpokládáme, že pracovní plocha MySQL vytváří tunel ve vašem počítači. Pokud ano, v MySQL workbench, zkuste tunelovat přes jiné číslo portu, jako je 9000.

Ujistěte se, že 9000 nebyl uveden jako otevřený port z: netstat -a

Pokud máte ssh přístup na us-east-1.amazonaws.com

4. Zkuste se připojit k MySQL z us-east-1.amazonaws.com

mysql -u myuser -h 127.0.0.1 -p

A jak řekl Rolando, budete chtít ověřit, zda se připojujete ke správným údajům. Pokud se například připojujete jako [email protected] a máte uživatele myuser bez hostitele, pravděpodobně se nebudete moci připojit pomocí [email protected]

5
Craig Efrein

Důvodem kontaktu 127.0.0.1 je to, že tunel spojuje port na místním počítači se vzdáleným hostitelem. Zdá se, že zpráva naznačuje, že není navázáno připojení SSH.

Zkuste to z příkazového řádku:

ssh -L 33000:remotehost:3306 [email protected]

Ujistěte se, že SSH umožňuje přeposílání portů; Pokud se zobrazí zpráva, která uvádí, že dopředu nebylo povoleno nebo bylo odmítnuto, tak je důvod.

Chcete-li tento problém vyřešit, musíte změnit konfiguraci serveru; přidejte tuto konfiguraci na server SSH:

AllowTcpForwarding yes

Nezapomeňte restartovat server a aktivovat tuto konfiguraci.

2
Mei

Tento problém jsem řešil téměř 2 týdny, nyní se mi ho podařilo nastavit. Zveřejním to zde, aby si to mohlo vyzkoušet více lidí.

Dobře, používám OpenSSH (nativní Win10) a Workbench 8.

Krok za krokem:
1. Přidejte klíče hostitele SSH k agentovi pomocí ssh-add.
2. Generujte páry klíčů pomocí ssh-keygen. V mém případě tyto soubory automaticky přejdou na Users/myUser/.ssh podle konfigurace instalace.
3. Přidejte veřejný klíč do souboru autorizované_keys (který musí být uvnitř vaší instalační cesty serveru, v mém případě Windows/System32/OpenSSH/.ssh) bez rozšíření.
4. Přidejte vygenerované klíče, které jste právě vytvořili, agentovi pomocí ssh-add.

Kroky výše jsou do značné míry konfigurace příkazového řádku SSH Server, který jsem zjistil OP již udělal pro jeho připojení pracuje přes terminál. Chcete-li nakonfigurovat MySQL Workbench 8, musíte udělat totéž, kromě toho, že musíte převést private_key.pem do formátu OpenSSH. než je přesunete na Users/myUser/.ssh a OpenSSH_instalation_path/.ssh

  1. Převeďte private_key.pem do formátu OpenSSH pomocí PUTTYgen.
  2. Zkopírujte pole "Veřejný klíč pro vložení do OpenSSH autorizovaných_keys".
  3. Uložte veřejný klíč do složek User/myUser/.ssh a OpenSSH_instalation_path/.ssh
  4. Vložte klíč, který jste zkopírovali z PuTTY, do souboru autorizovaných_keys v OpenSSH_instalation_path/.ssh složka.
  5. Exportujte klíč formátu OpenSSH do User/myUser/.ssh.
  6. Restartujte služby sshd a mysql
  7. Nakonfigurujte Workbench pro připojení k serveru SSH pomocí převedeného soukromého klíče.

UPDATE: V souboru sshd_config budete muset nastavit následující položky:

PermitRootLogin bez hesla
PubkeyAententication yes
PasswordAuthentication no
PermitEmptyPasswords no
AllowTcpPředávání ano

PROSÍM, PŘEČTĚTE:

Jsem nezkušený analytik, takže pokud pokročilejší uživatel ví, která ze dvou složek .ssh je ta pravá, řekněte nám to. Podle mě je OpenSSH trochu nejasný.
Toto pro mě fungovalo při nastavování místního vývojového prostředí pouze pomocí localhost. Jen pro účely učení.
Možná budete chtít přidat uživatele myUser @ localhost k uživatelům MySQL Workbench před testováním připojení.
Pokud je to opravdu potřeba, mohu přidat obrázky.

1
Rafael Corrêa

Měl jsem podobný problém, a to může být obvisous, ale zkontrolujte pravidla brány firewall v AWS. Mám nastavený rozsah IP, abych omezil připojení z vnějšího světa. A IP v mé kanceláři se změnilo, takže se dostal mimo rozsah IP. Můj kolega v jiné kanceláři se stále mohl připojit, takže jsem si myslel, že problém je na mém PC, ale problém byl s pravidly brány firewall v AWS. Doufám, že někomu pomůže :)

0
Asped

V mém případě jsem problém musel přepnout zpět na platné doménové jméno nebo IP místo vlastního hostitele lokálně Host vyřešen.

Rozlišení vlastního hostitele selhalo (/etc/hosts))

Pracuji s mechanismem rozlišení místních hostitelů, který definoval:

#.#.#.#    my-vm

Z nějakého důvodu s MySQL 5.2.47 Na Linux Mint 14 (Nadia), což je podobné Ubuntu 12.10 (Quantal) the mechanismus rozlišení nefunguje.

Řešení

Problém vyřešíte jednoduše přepněte na název veřejné domény, například my-website.com.

0
Édouard Lopez

Zde naleznete seznam zdrojů pro připojení k různým cílům (Amazon RDS, Amazon EC2, Windows Azure a další): http://forums.mysql.com/read.php?152,252640,252640#msg -25264 .

0
Mike Lischke