Debian Jessie ile MySQL Workbench - SSH üzerinden TCP / IP çalışmıyor


10

Windows 7 Pro x64 ile "SSH üzerinden TCP / IP" kullanarak MySQL Workbench istemcisi ile Debian Wheezy'de barındırılan MySQL sunucuma bağlanmak için kullanıyorum, ancak Debian Jessie'deki yeni sunucumda çalışmıyor? Neden?


MySQL Workbench yapılandırması:

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 adresini / ana bilgisayar adını, kullanıcı adını ve şifreyi iki kez kontrol ettim ...


Debian Wheezy sunucu yapılandırması:

kök @ debian: ~ # kedi / etc / debian_version

7.8

mysql> sürüm seç ();

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

kök @ debian: ~ # kedi / 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 sunucu yapılandırması:

kök @ debian: ~ # kedi / etc / debian_version

8.0

mysql> sürüm seç ();

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

kök @ debian: ~ # kedi / 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

Yani adam farkı ServerKeyBitsiki sshd_config dosyası arasındaki ...


Debian Jessie sunucusuna bağlanmaya çalıştığımda MySQL Workbench 6.3.3 hatası verdi :

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

Günlük dosyası:

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

Daha fazla bilgi:

"Ssh" klasörü şu ülkelerde mevcut değil:

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

Her iki sunucudaki güvenlik duvarı kuralları:

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

Her iki sunucuda SSH (KiTTY) ile bağlanabilirim ...


MySQL Workbench'in iki farklı sürümünü denedim:

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

Bu iki sürüm Debian Wheezy ile çalışır ancak Debian Jessie ile çalışmaz. Neyi kaçırıyorum?

Yanıtlar:


10

Göre https://bugs.mysql.com/bug.php?id=74658 MySQL tezgah sevk piton kütüphaneleri OpenSSH'yi 6.7 kullanırken sorun hediyeler kendisi. Sshd config çalışır "KexAlgorithms" eklerken, MySql Workbench ile gelen python kütüphanelerini güncelleyebilirsiniz. Eğer sshd yapılandırma üzerinde kontrol yoksa bu kullanışlı olabilir ...

Hata raporunda aşağı kaydırırsanız, paramiko ve ecdsa kitaplıklarını indirip kopyalamak için talimatlar vardır.


3
+1. Bu doğru cevap. Sshd içinde izin verilen anahtar değişimi algoritmalarının değiştirilmesi güvenlik etkilerine neden olabilir, bu nedenle bu yapılmamalıdır. İstemci kitaplığını bu yanıtta önerildiği gibi güncellemek daha az invazivdir ve ssh tünelinin güvenliğini artırır.
Christian Rudolph

Workbench 6.2 ve Debian Jessie için de aynı problemi yaşayın. My Workbench 6.2 CE, bunun Yardım-> Güncellemeleri Denetle içindeki en son sürüm olduğunu söyledi. Ne bir yalan ... Dev.mysql.com/downloads/workbench adresinden 6.3 Sürümü indirildi ve her şey bir cazibe gibi çalışıyor.
Martin Seitl

9

Çözümü buldum.

Bu satırı dosyama ekledim /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

ve ssh yeniden başlatıldı: systemctl restart ssh

bu gönderinin önerdiği gibi: /programming/26577494/aptana-sftp-key-exchange


7
Bu kesinlikle erişime izin verdi, ancak bunun doğru bir şey olduğu için hala yorgunum. Listelenen birkaç Algoritma var, MySQL Workbench için gerekli olan herhangi bir fikir var mı?
pcnate

0

Bigmandan'ın cevabında kaydırılacak çok şey olduğundan, bulmayı kolaylaştırmak için buraya göndermenin de mantıklı olabileceğini düşünüyorum.

Windows için bu düzeltme. [3 Haz 2015 15:27] Mike Hadrup Ayrıca Windows 10 64 bit üzerinde MySQL Workbench 6.3.3.0 (592) msi ile test edildi ve Debian 8 Jessie ile OpenSSH 6.7'ye karşı test edildi

Ecdsa-0.13.tar.gz gizlenmiş tar arşivi için http://www.7-zip.org/ adresinden 7zip kullanabilirsiniz .

Not: Visual Studio 2013 için Visual C ++ Yeniden Dağıtılabilir Paketleri Windows 10'da gereklidir: https://www.microsoft.com/en-us/download/details.aspx?id=40784

OS X'te paramiko ve ecdsa kitaplıklarını: /Applications/MySQLWorkbench.app/Contents/Resources/libraries klasörüne kopyalayın


0

çünkü mysql'e bağlanmak için iki yöntem vardır. mysql yüklediğiniz zaman ve o zaman hangi wana gitmek istediğinizi sormak çok hizmet ve size iyi performans verir unix çorap ve ikincisi TCP / ip ve lütfen size db bağlayabilirsiniz ayrıcalıkları kontrol yapmak uzaktan sadece hayır diğer ip varsa o zaman sen ve mysql güvenlik özelliğini etkinleştirmek


1
MySQL'in Unix soket arayüzü sadece aynı makinedeki istemciler tarafından kullanılabilir; bu soru, TCP / IP (ve isteğe bağlı olarak, soruda olduğu gibi, SSH) kullanması gereken farklı bir makinedeki istemciyle ilgilidir.
dave_thompson_085

0

Linux (ve sorunu tamamen TESTALLY), ben mysql-workbench kullanmak için kendi ssh tünel el ile oluşturmak için daha basit / temiz buldum:

ssh root @ host -L 3307: localhost: 3306

Bu, yerel bağlantı noktası 3307'den uzaktan kumandanın yerel bağlantı noktası 3306'ya bir ssh tüneli oluşturur. Böylece mysql-workbench'i localhost: 3307'ye bağlanacak şekilde yapılandırırsınız .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.