You are not logged in.

#1 2018-08-20 17:32:53

boxofrox
Member
Registered: 2012-07-09
Posts: 10

[SOLVED] [mysql-workbench][libssh] key exchange error

I was about to open a package bug, but thought it better to inquire on the Arch forums first.

Description:

After upgrading mysql-workbench to 8.0.12-3 on my Archlinux workstation, I can no longer connect to remote databases on three separate NixOS servers via SSH.

The log file for mysql-workbench reports that a key-exchange algorithm (kex algo) failure occurred because workbench only offered diffie-hellman-group1-sha1 and diffie-hellman-group14-sha1.  These two kex algos were considered weak and disabled by OpenSSH in its 7.0 release (IIRC), and the NixOS servers are using openssh 7.6p1.

I found that workbench replaced paramiko with libssh 0.7.5 for the 8.0 release. Then, I inquired in #libssh on freenode if libssh 0.7.5 supports other kex algos.  I was told that curve25519-sha256 should be the default, and also switch to libssh 0.8.1.  This thread [1] also indicates that libssh should already support other kex algos, but a related post [2] on the Arch forums suggests that libssh is having the same problem with another application.

[1]: https://www.linuxquestions.org/question … 175533193/
[2]: https://bbs.archlinux.org/viewtopic.php?id=235150

So I'm not sure whether this is a mysql-workbench bug, a configuration error on my system with respect to libssh's choice of kex algos, or if libssh was compiled without support for curve25519-sha256.

I have no issue using ssh on my Arch workstation to connect to any of my three NixOS servers.  It's only when I make the attempt via mysql-workbench that the ssh connection fails.


Packages:

- mysql-workbench 8.0.12-3
- libssh 0.7.5-2


wb.log

12:32:30 [INF][   WBContext UI]: Initializing workbench context UI with these values:
	base dir: /usr/share/mysql-workbench
	plugin path: /usr/lib/mysql-workbench/plugins
	struct path: /usr/share/mysql-workbench/grt
	module path: /usr/lib/mysql-workbench/modules
	library path: /usr/share/mysql-workbench/libraries
	user data dir: /home/user/.mysql/workbench
	open at start: 
	open type: 
	run at startup: 
	run type: 
	Force SW rendering: No
	Force OpenGL: No
	quit when done: No
12:32:30 [INF][      WBContext]: WbContext::init
12:32:31 [INF][            WBA]: Looking for extension modules for WBA...
12:32:31 [INF][            WBA]: 0 extension modules found
12:32:31 [WRN][            grt]: /usr/share/mysql-workbench/modules/data/mysql_rdbms_info.xml:1401: link 'om.mysql.rdbms.mysql.driver.native_sshtun' <object > key=owner could not be resolved
12:32:31 [WRN][            grt]: /home/user/.mysql/workbench/connections.xml:32: link 'f6ba075c-a16e-11e8-8762-eaf92c626679' <object GrtObject> key=owner could not be resolved
12:32:31 [INF][      WBContext]: System info:
 	MySQL Workbench Community (GPL) for Linux/Unix version 8.0.12 CE build 13312926 (64 bit)
	Configuration Directory: /home/user/.mysql/workbench
	Data Directory: /usr/share/mysql-workbench
	Cairo Version: 1.15.12
	OS:  x86_64
	CPU: 8x Intel(R) Core(TM) i7 CPU         950  @ 3.07GHz (2226.824MHz) - 23.53GiB RAM
No video adapter info available
	Distribution: Arch Linux

	Fips mode enabled: no

12:32:36 [INF][SSHTunnelManager]: Wakeup socket port created: 41321
12:32:36 [INF][     SSH tunnel]: Starting tunnel
12:32:36 [INF][     SSH tunnel]: Existing SSH tunnel not found, opening new one
12:32:36 [INF][     SSH tunnel]: Opening SSH tunnel to redacted.org:22
12:32:36 [INF][      SSHCommon]: libssh: ssh_connect ssh_connect: libssh 0.7.5 (c) 2003-2014 Aris Adamantiadis, Andreas Schneider, and libssh contributors. Distributed under the LGPL, please refer to COPYING file for information about your rights, using threading threads_stdthread
12:32:36 [INF][      SSHCommon]: libssh: ssh_socket_connect ssh_socket_connect: Nonblocking connection socket: 22
12:32:36 [INF][      SSHCommon]: libssh: ssh_connect ssh_connect: Socket connecting, now waiting for the callbacks to work
12:32:36 [ERR][     SSHSession]: Unable to connect: redacted.org:22
Error was: kex error : no match for method kex algos: server [curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256], client [diffie-hellman-group14-sha1,diffie-hellman-group1-sha1]
12:32:36 [ERR][     SSH tunnel]: Unable to open SSH tunnel: kex error : no match for method kex algos: server [curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256], client [diffie-hellman-group14-sha1,diffie-hellman-group1-sha1]

Steps to reproduce:

  1. Run mysql-workbench.

  2. Create a new MySQL connection.

  3. Change connection method to "Standard TCP/IP over SSH".

  4. Point SSH Hostname at VM/Server configured with OpenSSH 7.6 with default KexAlgos setting (i.e. diffie-hellman-*-sha1 disabled)

  5. Click "Test Connection"

  6. Observe that connection failed with error: "Cannot open SSH Tunnel: kex error...".

Last edited by boxofrox (2018-08-28 17:33:52)

Offline

#2 2018-08-28 17:32:28

boxofrox
Member
Registered: 2012-07-09
Posts: 10

Re: [SOLVED] [mysql-workbench][libssh] key exchange error

Hmm.. this appears to be fixed by installing mysql-workbench-8.0.12-4 and libssh 0.8.1-2.  Not sure why my previous pacman -Syu left libssh 0.7.5-2 installed, but maybe my timing was just that perfect.

Anyway, just upgraded again today with pacman -Syu and found libssh 0.8.1-2 installed, and mysq-workbench no longer reports a key exchange error when using SSH tunnels.

Offline

Board footer

Powered by FluxBB