MySQL Workbench 및 멀티홉 SSH 터널

MySQL Workbench 및 멀티홉 SSH 터널

MySQL Workbench에 관해 질문이 있습니다. 내 연결은 다음과 같습니다.

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

따라서 데이터베이스에 도달하기 전에 두 개의 홉이 있습니다(데이터베이스 자체에 대한 세 개의 홉). "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 프로필을 지정했지만 두 개의 홉을 만드는 방법을 알 수 없는 것 같습니다.

에러 메시지:

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 구성에서만 작동하길 원합니다.

관련 정보