MySQL Workbench với Debian Jessie - TCP / IP qua SSH không hoạt động


10

Tôi sử dụng để kết nối với Windows 7 Pro x64 với máy chủ MySQL của tôi được lưu trữ trên Debian Wheezy với máy khách MySQL Workbench bằng cách sử dụng "TCP / IP qua SSH" nhưng tại sao nó không hoạt động trên máy chủ mới của tôi trên Debian Jessie, tại sao?


Cấu hình bàn làm việc của MySQL:

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

Tôi đã kiểm tra kỹ địa chỉ IP / tên máy chủ, tên người dùng và mật khẩu ...


Cấu hình máy chủ Debian Wheezy:

root @ debian: ~ # cat / etc / debian_version

7.8

mysql chọn phiên bản ();

+------------------+
| 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

Cấu hình máy chủ Debian Jessie:

root @ debian: ~ # cat / etc / debian_version

8.0

mysql chọn phiên bản ();

+-----------------+
| 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

Vì vậy, sự khác biệt của người đàn ông là ServerKeyBitsgiữa hai tệp sshd_config ...


Lỗi MySQL Workbench 6.3.3 gây ra cho tôi khi tôi cố gắng kết nối với máy chủ Debian Jessie :

Could not connect the SSH Tunnel
Authentication error, unhandled exception caught in tunnel manager, please refer to logs for details

Tệp nhật ký:

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

Thêm thông tin:

Thư mục "ssh" không có trong:

C:\Users\myUser\AppData\Roaming\MySQL\Workbench

Quy tắc tường lửa trên cả hai máy chủ:

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

Tôi có thể kết nối với SSH (KiTTY) trên cả hai máy chủ ...


Tôi đã thử hai phiên bản khác nhau của MySQL Workbench:

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

Hai phiên bản này hoạt động với Debian Wheezy nhưng không phải với Debian Jessie. Tôi đang thiếu gì?

Câu trả lời:


10

Theo https://bugs.mysql.com/orms.php?id=74658 , vấn đề này tự thể hiện khi sử dụng openssh 6.7, các thư viện python được vận chuyển với bàn làm việc MySql. Trong khi thêm "KexAlacticms" vào cấu hình sshd, bạn có thể cập nhật các thư viện python đi kèm với MySql Workbench. Điều này có thể hữu ích nếu bạn không có quyền kiểm soát cấu hình sshd ...

Nếu bạn cuộn xuống trong báo cáo lỗi, có hướng dẫn tải xuống và sao chép thư viện paramiko và ecdsa.


3
+1. Đây là câu trả lời chính xác. Thay đổi các thuật toán trao đổi khóa được phép trong sshd có thể có tác động bảo mật vì vậy điều này không nên được thực hiện. Cập nhật thư viện khách như được đề xuất trong câu trả lời này ít xâm lấn hơn và cải thiện tính bảo mật của đường hầm ssh.
Christian Rudolph

Có cùng một vấn đề với Workbench 6.2 và Debian Jessie. Bàn làm việc của tôi 6.2 CE nói với tôi rằng đó là phiên bản mới nhất trong Trợ giúp-> Kiểm tra cập nhật. Thật là một lời nói dối ... Đã tải xuống Phiên bản 6.3 từ dev.mysql.com/doads/workbench và mọi thứ hoạt động như một bùa mê.
Martin Seitl

9

Tôi đã tìm được giải pháp.

Tôi đã thêm dòng này vào /etc/ssh/sshd_configtập tin của mình :

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

và khởi động lại ssh: systemctl restart ssh

như được đề xuất bởi bài đăng này: /programming/26577494/aptana-sftp-key-exchange


7
Điều này chắc chắn cho phép truy cập nhưng tôi vẫn mệt mỏi vì đây là điều chính xác phải làm. Có khá nhiều Thuật toán được liệt kê, có ý tưởng nào cần thiết cho MySQL Workbench không?
pcnate

0

Vì có rất nhiều điều để xem qua câu trả lời của bigmandan, tôi nghĩ rằng cũng có thể có ý nghĩa khi đăng nó ở đây để dễ tìm hơn.

Đối với Windows , đây là bản sửa lỗi. [3 tháng 6 năm 2015 15:27] Mike Hadrup Cũng đã thử nghiệm trên Windows 10 64 bit với MySQL Workbench 6.3.3.0 (592) msi và không cài đặt đối với Debian 8 Jessie với OpenSSH 6.7

Bạn có thể sử dụng 7zip từ http://www.7-zip.org/ cho kho lưu trữ tar được chia thành ecdsa-0.13.tar.gz.

Lưu ý: Các gói có thể phân phối lại Visual C ++ cho Visual Studio 2013 là bắt buộc trên Windows 10 từ: https://www.microsoft.com/en-us/doad/details.aspx?id=40784

Trên OS X , sao chép các thư viện paramiko và ecdsa vào: /Appluggest/MySQLWorkbench.app/Contents/Resource/l library


0

bởi vì có hai phương thức để kết nối với mysql. Thời gian khi bạn cài đặt mysql và lúc đó nó hỏi bạn đi theo cách nào 1 là unix sock rất được phục vụ và mang lại cho bạn hiệu suất tốt và thứ hai là TCP / ip và vui lòng kiểm tra các đặc quyền để bạn có thể kết nối với bạn db từ xa chỉ sử dụng một số ip khác nếu không thì bạn và kích hoạt tính năng bảo mật trong mysql


1
Giao diện ổ cắm Unix cho MySQL chỉ có thể được sử dụng bởi các máy khách trên cùng một máy; câu hỏi này là về một máy khách trên một máy khác phải sử dụng TCP / IP (và tùy chọn, như trong câu hỏi, SSH).
dave_thndry_085

0

Trong linux (và TOTALLY khắc phục sự cố), tôi thấy đơn giản hơn / dọn dẹp hơn để tự tạo đường hầm ssh của riêng mình để mysql-workbench sử dụng:

root ssh @ host -L 3307: localhost: 3306

Điều này tạo ra một đường hầm ssh từ cổng cục bộ 3307 đến cổng cục bộ 3306 của điều khiển từ xa. Vì vậy, bạn chỉ cần cấu hình mysql-workbench để kết nối với localhost: 3307 .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.