MySQL Workbench with Debian Jessie-SSH上のTCP / IPが機能しない


10

Windows 7 Pro x64で、MySQL Workbenchクライアントが「TCP / IP over SSH」を使用してDebian WheezyでホストされているMySQLサーバーに接続するのに使用していますが、Debian Jessieの新しいサーバーでは機能しません。なぜですか?


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

だから男の違いはServerKeyBits2つのsshd_configファイル間の違いです...


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では機能しません。 何が欠けていますか?

回答:


10

https://bugs.mysql.com/bug.php?id=74658によると、openssh 6.7を使用すると、MySqlワークベンチに同梱されているPythonライブラリに問題が発生します。「KexAlgorithms」をsshd構成に追加することは機能しますが、MySql Workbenchに付属するpythonライブラリを更新できます。これは、sshd構成を制御できない場合に便利です...

バグレポートを下にスクロールすると、paramikoおよびecdsaライブラリをダウンロードしてコピーする手順があります。


3
+1。これが正解です。sshdで許可されている鍵交換アルゴリズムを変更すると、セキュリティに影響を与える可能性があるため、これは行わないでください。この回答で提案されているようにクライアントライブラリを更新すると、侵襲性が低くなり、sshトンネルのセキュリティが向上します。
クリスチャンルドルフ

Workbench 6.2とDebian Jessieで同じ問題に対処してください。Workbench 6.2 CEは、Help-> Check for Updatesで最新バージョンであると教えてくれました。なんて嘘… dev.mysql.com / downloads / workbenchからバージョン6.3をダウンロードして、すべてが魅力のように動作します。
Martin Seitl 2016年

9

私は解決策を見つけました。

この行を/etc/ssh/sshd_configファイルに追加しました:

KexAlgorithms curve25519-sha256@libssh.org,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


7
これは確かにアクセスを許可しましたが、これが正しいことであることに私はまだうんざりしています。かなりの数のアルゴリズムがリストされていますが、MySQL Workbenchに必要なアイデアはありますか?
pcnate 2015年

0

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を実行しました

ecdsa-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にコピーします。


0

mysqlに接続するには2つの方法があるためです。mysqlをインストールするときと、そのときにどちらに行くかを尋ねるときは、最初にunix sockが提供され、パフォーマンスが高く、2番目はTCP / ipであり、dbに接続できるかどうかの特権を確認してください。それ以外の場合はリモートで他のIPを使用して、mysqlのセキュリティ機能を有効にします


1
MySQLへのUnixソケットインターフェースは、同じマシン上のクライアントのみが使用できます。この質問は、TCP / IP(およびオプションで、質問のようにSSH)を使用する必要がある別のマシン上のクライアントに関するものです。
dave_thompson_085

0

Linux(および問題を完全に回避)では、mysql-workbenchが使用する独自のsshトンネルを手動で作成する方が簡単/クリーンであることがわかりました。

ssh root @ host -L 3307:localhost:3306

これにより、ローカルポート3307からリモートのローカルポート3306へのsshトンネルが作成されます。したがって、mysql-workbenchを構成してlocalhost:3307に接続するだけです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.