MySQL WorkbenchとマルチホップSSHトンネル

MySQL WorkbenchとマルチホップSSHトンネル

MySQL Workbenchについて質問があります。私の接続は次のとおりです。

laptop => bastion:22 => machineX:22 (10.10.10.10) => mysql:3306

したがって、データベースに到達する前に2つのホップがあります(データベース自体への3つのホップ)。 "machineX"だけがポート3306を介してデータベースにアクセスできます。

私のSSH設定には次のものがあります。

Host 10.10.10.10
  ProxyCommand ssh -W %h:%p bastion

上記を使用してください。

  • リモートポートをローカルに公開してlocalhostに接続すると、SSHトンネルを使用してデータベースに正常に接続できます。
  • MacでSequel Proを使用してデータベースに正常に接続できます(SSH設定を使用)。

ただし、MySQL Workbenchを使用して接続することはできません(SSHオプションを介したTCP / IPを使用)。 MySQL WBプロパティにSSHプロファイルを指定しましたが、2つのホップを作成する方法がわからないようです。

エラーメッセージ:

Failed to Connect to MySQL at mysql:3306 through SSH tunnel at [email protected] with user dbuser

11:06:00 [INF][     SSH tunnel]: Existing SSH tunnel not found, opening new one
11:06:00 [INF][     SSH tunnel]: Opening SSH tunnel to 10.10.10.10
11:06:00 [DB2][sshtunnel.py:do_run:119]: SSH Tunel 17 thread started
11:06:00 [DB2][sshtunnel.py:notify:230]: tunnel_28908: INFO Connecting to SSH server at 10.10.10.10:22 using key /Users/seb/.ssh/id_rsa...
11:06:00 [DB1][     SSH tunnel]: Waiting on tunnel to connect...
11:06:00 [DB1][sshtunnel.py:wait_connection:484]: INFO: Connecting to SSH server at 10.10.10.10:22 using key /Users/seb/.ssh/id_rsa...
11:06:10 [DB2][sshtunnel.py:notify:230]: tunnel_28908: IO_ERROR IO Error: timed out.
 Please refer to logs for details.
11:06:10 [DB1][sshtunnel.py:wait_connection:492]: returning from wait_connection(28908): IO Error: timed out.
 Please refer to logs for details.
11:06:10 [DB1][     SSH tunnel]: TunnelManager.wait_connection() returned IO Error: timed out.
 Please refer to logs for details.
11:06:10 [ERR][     SSH tunnel]: TunnelManager.wait_connection got IOError: IO Error: timed out.
 Please refer to logs for details.
11:06:10 [ERR][sshtunnel.py:notify_exception_error:235]: Traceback (most recent call last):
  File "/Applications/MySQLWorkbench.app/Contents/Resources/sshtunnel.py", line 303, in _connect_ssh
    look_for_keys=has_key, allow_agent=has_key, timeout=SSH_CONNECTION_TIMEOUT)
  File "/Applications/MySQLWorkbench.app/Contents/Resources/libraries/paramiko/client.py", line 292, in connect
    retry_on_signal(lambda: sock.connect(addr))
  File "/Applications/MySQLWorkbench.app/Contents/Resources/libraries/paramiko/util.py", line 270, in retry_on_signal
    return function()
  File "/Applications/MySQLWorkbench.app/Contents/Resources/libraries/paramiko/client.py", line 292, in <lambda>
    retry_on_signal(lambda: sock.connect(addr))
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
timeout: timed out

MySQL Workbenchが十分に賢くないか設定する必要がありますが、私が知らない他のものはありますか?私はMacとWindows用のMySQL WBを試しましたが、成功しませんでした。私が言ったように、例えばSequel Proを使用すると完璧に動作します!

あなたが言う前に - トンネルを設定してからlocalhostに接続してください - 私はそうしたくない理由でいいえと言いました。 MySQL WBのSSH設定でのみ機能したいです。

ベストアンサー1

おすすめ記事