Eu uso para conectar com o Windows 7 Pro x64 ao meu servidor MySQL hospedado em um Debian Wheezy com o cliente MySQL Workbench usando o "TCP / IP sobre SSH", mas ele não funciona no meu novo servidor no Debian Jessie, por que?
Configuração do 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
Verifiquei o endereço IP / nome do host, nome de usuário e senha ...
Configuração do servidor Debian Wheezy:
root @ debian: ~ # cat / etc / debian_version
7.8
mysql> selecione a versão ();
+------------------+
| 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
Configuração do servidor Debian Jessie:
root @ debian: ~ # cat / etc / debian_version
8.0
mysql> selecione a versão ();
+-----------------+
| 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
Portanto, a diferença do homem é ServerKeyBits
entre os dois arquivos sshd_config ...
O erro que o MySQL Workbench 6.3.3 me fornece quando tento conectar-me ao servidor Debian Jessie :
Could not connect the SSH Tunnel
Authentication error, unhandled exception caught in tunnel manager, please refer to logs for details
O arquivo de log:
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
Mais informações:
A pasta "ssh" não está presente em:
C:\Users\myUser\AppData\Roaming\MySQL\Workbench
Regras de firewall nos dois 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
Posso me conectar com o SSH (KiTTY) nos dois servidores ...
Eu tentei duas versões diferentes do MySQL Workbench:
Version 6.3.3.0 build 592 (64 bits)
Version 6.0.9.11421 build 1170 (32 bits)
Essas duas versões funcionam com o Debian Wheezy, mas não com o Debian Jessie. o que estou perdendo?
Eu encontrei a solução.
Adicionei esta linha ao meu
/etc/ssh/sshd_config
arquivo:e reiniciou o ssh:
systemctl restart ssh
conforme sugerido por este post: /programming/26577494/aptana-sftp-key-exchange
fonte
Como há muito para rolar a resposta de bigmandan, acho que pode fazer sentido também publicá-la aqui para facilitar a localização.
Para Windows , essa é a correção. [3 de junho de 2015 15:27] Mike Hadrup Também testado no Windows 10 de 64 bits com o MySQL Workbench 6.3.3.0 (592) msi e noinstall contra o Debian 8 Jessie com o OpenSSH 6.7
Você pode usar o 7zip em http://www.7-zip.org/ para o arquivo tar tarado ecdsa-0.13.tar.gz.
Nota: Pacotes redistribuíveis do Visual C ++ para Visual Studio 2013 são necessários no Windows 10 em: https://www.microsoft.com/en-us/download/details.aspx?id=40784
No OS X , copie as bibliotecas paramiko e ecdsa para: /Applications/MySQLWorkbench.app/Contents/Resources/libraries
fonte
porque existem dois métodos para se conectar ao mysql. o momento em que você instala o mysql e o tempo em que pergunta o caminho que você segue primeiro é o unix sock, que é muito útil e oferece um bom desempenho, e o segundo é o TCP / ip; verifique os privilégios para conectar-se a você remotamente apenas usei outro ip se não, então você e habilite o recurso de segurança no mysql
fonte
No linux (e TOTALMENTE evitando a questão), achei mais simples / limpo criar manualmente meu próprio túnel ssh para o mysql-workbench usar:
Isso cria um túnel ssh da porta local 3307 para a porta local remota 3306. Então você acabou de configurar o mysql-workbench para conectar-se ao localhost: 3307 .
fonte