Solía conectarme con Windows 7 Pro x64 a mi servidor MySQL alojado en un Debian Wheezy con el cliente MySQL Workbench usando el "TCP / IP sobre SSH", pero no funciona en mi nuevo servidor en Debian Jessie, ¿por qué?
Configuración de 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
Verifiqué la dirección IP / nombre de host, nombre de usuario y contraseña ...
Configuración del servidor Debian Wheezy:
root @ debian: ~ # cat / etc / debian_version
7.8
mysql> seleccione la versió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
Configuración del servidor Debian Jessie:
root @ debian: ~ # cat / etc / debian_version
8.0
mysql> seleccione la versió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
Entonces, la diferencia del hombre es ServerKeyBits
entre los dos archivos sshd_config ...
El error MySQL Workbench 6.3.3 me da cuando intento conectarme al servidor Debian Jessie :
Could not connect the SSH Tunnel
Authentication error, unhandled exception caught in tunnel manager, please refer to logs for details
El archivo de 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
Más información:
La carpeta "ssh" no está presente en:
C:\Users\myUser\AppData\Roaming\MySQL\Workbench
Reglas de firewall en ambos servidores:
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
Puedo conectarme con SSH (KiTTY) en ambos servidores ...
He probado dos versiones diferentes de MySQL Workbench:
Version 6.3.3.0 build 592 (64 bits)
Version 6.0.9.11421 build 1170 (32 bits)
Estas dos versiones funcionan con Debian Wheezy pero no con Debian Jessie. ¿Qué me estoy perdiendo?
He encontrado la solución.
Agregué esta línea a mi
/etc/ssh/sshd_config
archivo:y reinició ssh:
systemctl restart ssh
como lo sugiere esta publicación: /programming/26577494/aptana-sftp-key-exchange
fuente
Dado que hay mucho que recorrer en la respuesta de bigmandan, creo que podría tener sentido también publicarlo aquí para que sea más fácil de encontrar.
Para Windows , esta es la solución. [3 de junio de 2015, 15:27] Mike Hadrup también probó en Windows 10 de 64 bits con MySQL Workbench 6.3.3.0 (592) msi y noinstall contra Debian 8 Jessie con OpenSSH 6.7
Puede usar 7zip desde http://www.7-zip.org/ para el archivo tar gizpped ecdsa-0.13.tar.gz.
Nota: Se requieren paquetes redistribuibles de Visual C ++ para Visual Studio 2013 en Windows 10 desde: https://www.microsoft.com/en-us/download/details.aspx?id=40784
En OS X , copie las bibliotecas paramiko y ecdsa en: /Applications/MySQLWorkbench.app/Contents/Resources/libraries
fuente
porque hay dos métodos para conectarse a mysql. el momento en que instala mysql y en ese momento le pregunta de qué manera quiere ir Primero es un calcetín Unix que es muy útil y le brinda un buen rendimiento y el segundo es TCP / ip y compruebe los privilegios o puede conectarse a usted db remotamente solo usé alguna otra ip si no, entonces usted y habilite la función de seguridad en mysql
fuente
En Linux (y TOTALMENTE eludiendo el problema), me pareció más simple / más limpio crear manualmente mi propio túnel ssh para que mysql-workbench lo use:
Esto crea un túnel ssh desde su puerto local 3307 hasta el puerto local remoto 3306. Entonces, simplemente configure mysql-workbench para conectarse a localhost: 3307 .
fuente