MySQL Workbench con Debian Jessie - TCP / IP su SSH non funziona


10

Uso per connettermi con Windows 7 Pro x64 al mio server MySQL ospitato su un Debian Wheezy con il client MySQL Workbench usando "TCP / IP over SSH" ma non funziona sul mio nuovo server su Debian Jessie, perché?


Configurazione di 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

Ho ricontrollato l'indirizzo IP / nome host, nome utente e password ...


Configurazione del server 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

Configurazione del server 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

Quindi la differenza uomo è ServerKeyBitstra i due file sshd_config ...


L'errore MySQL Workbench 6.3.3 mi dà quando provo a connettermi al server Debian Jessie :

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

Il file di registro:

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

Altre informazioni:

La cartella "ssh" non è presente in:

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

Regole del firewall su entrambi i server:

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

Posso collegarmi con SSH (KiTTY) su entrambi i server ...


Ho provato due diverse versioni di MySQL Workbench:

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

Queste due versioni funzionano con Debian Wheezy ma non con Debian Jessie. Cosa mi sto perdendo?

Risposte:


10

Secondo https://bugs.mysql.com/bug.php?id=74658 il problema si presenta quando si utilizza openssh 6.7 le librerie Python fornite con MySql workbench. Mentre si aggiungono i "KexAlgorithms" ai lavori di configurazione di sshd, è possibile aggiornare le librerie di Python fornite con MySql Workbench. Questo può essere utile se non hai il controllo sulla configurazione di sshd ...

Se scorri verso il basso nel rapporto sui bug, ci sono istruzioni per scaricare e copiare le librerie paramiko ed ecdsa.


3
+1. Questa è la risposta corretta La modifica degli algoritmi di scambio di chiavi consentiti in sshd può avere ripercussioni sulla sicurezza, quindi ciò non dovrebbe essere fatto. L'aggiornamento della libreria client come suggerito in questa risposta è meno invasivo e migliora la sicurezza del tunnel ssh.
Christian Rudolph,

Hat lo stesso problema con Workbench 6.2 e Debian Jessie. My Workbench 6.2 CE mi ha detto che era l'ultima versione in Aiuto-> Controlla aggiornamenti. Che bugia ... Scarica la versione 6.3 da dev.mysql.com/downloads/workbench e tutto funziona come un fascino.
Martin Seitl,

9

Ho trovato la soluzione.

Ho aggiunto questa riga al mio /etc/ssh/sshd_configfile:

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

e riavviato ssh: systemctl restart ssh

come suggerito da questo post: /programming/26577494/aptana-sftp-key-exchange


7
Ciò ha certamente consentito l'accesso, ma sono ancora stanco che questa sia la cosa giusta da fare. Sono elencati alcuni algoritmi, qualche idea richiesta per MySQL Workbench?
PCnate il

0

Dato che c'è molto da scorrere sulla risposta di Bigmandan, penso che potrebbe avere senso pubblicarlo anche qui per facilitarne la ricerca.

Per Windows , questa è la correzione. [3 giu 2015 15:27] Mike Hadrup Testato anche su Windows 10 64 bit con MySQL Workbench 6.3.3.0 (592) msi e noinstall contro Debian 8 Jessie con OpenSSH 6.7

Puoi usare 7zip da http://www.7-zip.org/ per l'archivio tar tar ecdsa-0.13.tar.gz.

Nota: i pacchetti ridistribuibili di Visual C ++ per Visual Studio 2013 sono richiesti su Windows 10 da: https://www.microsoft.com/en-us/download/details.aspx?id=40784

Su OS X , copia le librerie paramiko ed ecdsa in: /Applications/MySQLWorkbench.app/Contents/Resources/libraries


0

perché ci sono due metodi per connettersi a mysql. il momento in cui installi mysql e quella volta ti chiedi in che modo vuoi andare 1 ° è calzino unix che è molto servito e ti dà buone prestazioni e il 2 ° è TCP / ip e ti preghiamo di controllare i privilegi che puoi connettere a te db in remoto hai usato qualche altro IP se non allora e abilita la funzione di sicurezza in mysql


1
L'interfaccia socket Unix per MySQL è utilizzabile solo dai client sulla stessa macchina; questa domanda riguarda un client su un altro computer che deve usare TCP / IP (e facoltativamente, come nella domanda, SSH).
dave_thompson_085,

0

In Linux (e COMPLETAMENTE eludendo il problema), ho trovato più semplice / pulito creare manualmente il mio tunnel ssh per mysql-workbench da usare:

ssh root @ host -L 3307: localhost: 3306

Questo crea un tunnel ssh dalla porta locale 3307 alla porta locale remota 3306. Quindi devi solo configurare mysql-workbench per collegarti a localhost: 3307 .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.