MySQL Workbench設定:
Connection Name: TEST
Connection Method: Standard TCP/IP over SSH
SSH Hostname: x.x.x.x:22
SSH Username: root
SSH Password: myRootPa$$Word
SSH Key File: <NOT-USING-KEYFILE>
MySQL Hostname: 127.0.0.1
MySQL Server Port: 3306
Username: root
Password: myMySQLPa$$Word
IPアドレス/ホスト名、ユーザー名、パスワードを再確認しました...
Debian Wheezyサーバー構成:
root @ debian:〜#cat/etc/debian_version
7.8
mysql> select version();
+------------------+
| version() |
+------------------+
| 5.5.40-0+wheezy1 |
+------------------+
1 row in set (0.00 sec)
root @ debian:〜#cat/etc/ssh/sshd_config
Port 22
Protocol 2
HostKey /etc/ssh/ssh_Host_rsa_key
HostKey /etc/ssh/ssh_Host_dsa_key
HostKey /etc/ssh/ssh_Host_ecdsa_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 768
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes
Debian Jessieサーバー構成:
root @ debian:〜#cat/etc/debian_version
8.0
mysql> select version();
+-----------------+
| version() |
+-----------------+
| 5.5.43-0+deb8u1 |
+-----------------+
1 row in set (0.00 sec)
root @ debian:〜#cat/etc/ssh/sshd_config
Port 22
Protocol 2
HostKey /etc/ssh/ssh_Host_rsa_key
HostKey /etc/ssh/ssh_Host_dsa_key
HostKey /etc/ssh/ssh_Host_ecdsa_key
HostKey /etc/ssh/ssh_Host_ed25519_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 1024
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes
つまり、2つのsshd_configファイルの違いはServerKeyBits
です...
Debian Jessieサーバーに接続しようとすると、MySQL Workbench 6.3.3エラーが表示されます。
Could not connect the SSH Tunnel
Authentication error, unhandled exception caught in tunnel manager, please refer to logs for details
ログファイル:
10:00:04 [INF][ SSH tunnel]: Starting tunnel
10:00:04 [INF][ SSH tunnel]: Existing SSH tunnel not found, opening new one
10:00:07 [INF][ SSH tunnel]: Opening SSH tunnel to 10.232.50.15:22
10:00:07 [WRN][sshtunnel.py:_connect_ssh:287]: IOError, probably caused by file C:\Users\myUser\AppData\Roaming\MySQL\Workbench\ssh\known_hosts not found, the message was: [Errno 2] No such file or directory: u'C:\\Users\\myUser\\AppData\\Roaming\\MySQL\\Workbench\\ssh\\known_hosts'
10:00:07 [ERR][sshtunnel.py:notify_exception_error:233]: Traceback (most recent call last):
File "C:\Program Files\MySQL\MySQL Workbench 6.3 CE\sshtunnel.py", line 297, in _connect_ssh
look_for_keys=has_key, allow_agent=has_key)
File "C:\Program Files\MySQL\MySQL Workbench 6.3 CE/python/site-packages\paramiko\client.py", line 301, in connect
t.start_client()
File "C:\Program Files\MySQL\MySQL Workbench 6.3 CE/python/site-packages\paramiko\transport.py", line 461, in start_client
raise e
SSHException: Incompatible ssh peer (no acceptable kex algorithm)
10:00:07 [INF][ SSH tunnel]: TunnelManager.wait_connection authentication error: Authentication error, unhandled exception caught in tunnel manager, please refer to logs for details
10:00:07 [ERR][ SSH tunnel]: Authentication error opening SSH tunnel: Authentication error, unhandled exception caught in tunnel manager, please refer to logs for details
詳細情報:
フォルダ「ssh」は次の場所には存在しません:
C:\Users\myUser\AppData\Roaming\MySQL\Workbench
両方のサーバーのファイアウォールルール:
root@debian:~# iptables -vnL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
両方のサーバーでSSH(KiTTY)で接続できます...
私は2つの異なるバージョンのMySQL Workbenchを試しました。
Version 6.3.3.0 build 592 (64 bits)
Version 6.0.9.11421 build 1170 (32 bits)
これら2つのバージョンは、Debian Wheezyでは機能しますが、Debian Jessieでは機能しません。 何が欠けていますか?
https://bugs.mysql.com/bug.php?id=74658 によると、openssh 6.7を使用すると問題が発生するpython MySqlワークベンチに付属のライブラリ。 "KexAlgorithms"をsshd構成に追加しながら、MySql Workbenchに付属するpythonライブラリを更新できます。これは、sshd構成を制御できない場合に便利です。 ..
バグレポートを下にスクロールすると、paramikoおよびecdsaライブラリをダウンロードしてコピーする手順があります。
解決策を見つけました。
この行を/etc/ssh/sshd_config
ファイルに追加しました:
KexAlgorithms [email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
sshを再起動しました:systemctl restart ssh
この投稿で示唆されているように: https://stackoverflow.com/questions/26577494/aptana-sftp-key-exchange
mysqlに接続する方法は2つあるためです。 mysqlをインストールするときと、そのときにどちらに行くかを尋ねるときは、最初にunix sockが提供され、優れたパフォーマンスが得られます。2番目はTCP/ipであり、dbに接続できる権限を確認してください。リモートで他のいくつかのIPを使用した場合、それ以外の場合は、mysqlのセキュリティ機能を有効にします
Linux(および問題を全面的に回避)では、mysql-workbenchが使用する独自のsshトンネルを手動で作成する方が簡単/クリーンであることがわかりました。
ssh root @ Host -L 3307:localhost:3306
これにより、ローカルポート3307からリモートのローカルポート3306へのsshトンネルが作成されます。mysql-workbenchを構成してlocalhost:3307に接続するだけです。
Bigmandanの答えをスクロールするのはたくさんあるので、見つけやすくするためにここにも投稿することは理にかなっていると思います。
Windowsの場合、これが修正されます。 [2015年6月3日15:27] Mike Hadrupは、Windows 10 64ビットでMySQL Workbench 6.3.3.0(592)msiを使用してテストし、OpenSSH 6.7を使用したDebian 8 Jessieに対してnoinstallを実行しました
Ezipsa-0.13.tar.gz gizpped tarアーカイブには、 http://www.7-Zip.org/ から7Zipを使用できます。
注:Windows 10では、次の場所からVisual Studio 2013のVisual C++再頒布可能パッケージが必要です https://www.Microsoft.com/en-us/download/details.aspx?id=40784
OS Xで、paramikoおよびecdsaライブラリを/Applications/MySQLWorkbench.app/Contents/Resources/librariesにコピーします