Назад | Перейти на главную страницу

MySQL Workbench с Debian Jessie - TCP / IP через SSH не работает

Я использую для подключения с Windows 7 Pro x64 к моему серверу MySQL, размещенному на Debian Wheezy, с клиентом MySQL Workbench с использованием «TCP / IP через SSH», но он не работает на моем новом сервере на 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:

корень @ debian: ~ # cat / etc / debian_version

7.8

mysql> выберите версию ();

+------------------+
| version()        |
+------------------+
| 5.5.40-0+wheezy1 |
+------------------+
1 row in set (0.00 sec)

корень @ 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:

корень @ debian: ~ # cat / etc / debian_version

8.0

mysql> выберите версию ();

+-----------------+
| version()       |
+-----------------+
| 5.5.43-0+deb8u1 |
+-----------------+
1 row in set (0.00 sec)

корень @ 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

Итак, разница между мужчинами ServerKeyBits между двумя файлами sshd_config ...


Ошибка 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) на обоих серверах ...


Я пробовал две разные версии MySQL Workbench:

Version 6.3.3.0 build 592 (64 bits)
Version 6.0.9.11421 build 1170 (32 bits)

Эти две версии работают с Debian Wheezy, но не с Debian Jessie. Что мне не хватает?

В соответствии с https://bugs.mysql.com/bug.php?id=74658 проблема возникает при использовании openssh 6.7 и библиотек python, поставляемых с MySql workbench. При добавлении «KexAlgorithms» в конфигурацию sshd вы можете обновить библиотеки python, которые поставляются с MySql Workbench. Это может быть удобно, если у вас нет контроля над конфигурацией sshd ...

Если вы прокрутите отчет об ошибке вниз, вы увидите инструкции по загрузке и копированию библиотек paramiko и ecdsa.

Я нашел решение.

Я добавил эту строку в свой /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

Поскольку в ответе bigmandan есть что прокрутить, я думаю, что имеет смысл также опубликовать его здесь, чтобы его было легче найти.

Для Windows, это исправление. [3 июня 2015 г., 15:27] Майк Хадруп Также тестировался на 64-разрядной версии Windows 10 с MySQL Workbench 6.3.3.0 (592) msi и без установки на Debian 8 Jessie с OpenSSH 6.7

  • скачать zip из https://github.com/paramiko/paramiko и разархивируйте
  • скопировать paramiko из paramiko-master в python / site-packages / (заменить существующий paramiko)
  • загрузите ecdsa-0.13.tar.gz из https://pypi.python.org/pypi/ecdsa#downloads и разархивируйте
  • скопируйте ecdsa из ecdsa-0.13 в python / site-packages /

Вы можете использовать 7zip из http://www.7-zip.org/ для архивного tar-архива ecdsa-0.13.tar.gz.

Примечание. В Windows 10 требуются распространяемые пакеты Visual C ++ для Visual Studio 2013 из: https://www.microsoft.com/en-us/download/details.aspx?id=40784

В OS Xскопируйте библиотеки paramiko и ecdsa в: /Applications/MySQLWorkbench.app/Contents/Resources/libraries

потому что есть два метода подключения к mysql. время, когда вы устанавливаете mysql, и в этот раз он спрашивает, в каком направлении вы идете 1-й - это unix sock, который очень обслуживается и дает вам хорошую производительность, а второй - TCP / ip, и, пожалуйста, проверьте привилегии, вы можете подключиться к вам db удаленно просто использовал какой-то другой ip, если нет, то вы и включите функцию безопасности в mysql

В linux (и ПОЛНОСТЬЮ обойдя проблему) я обнаружил, что проще / чище вручную создать собственный ssh-туннель для mysql-workbench:

ssh root @ host -L 3307: локальный: 3306

Это создает туннель ssh от вашего локального порта 3307 к локальному порту 3306 удаленного компьютера. Итак, вы просто настраиваете mysql-workbench для подключения к localhost: 3307.