SUMMARY The Android app offers ssh key exchange using diffie-hellman-group14-sha1 and diffie-hellman-group1-sha1. In the newest version of openssh the former was removed from the defaults, the latter has been disabled for a while. This results in kdeconnect not being able to create a connection using sshfs. STEPS TO REPRODUCE 1. Click on your phone icon in dolphin OBSERVED RESULT Error message EXPECTED RESULT A connection to the phones file system SOFTWARE/OS VERSIONS App on Android version 1.13.7 kdeconnect 1.4.1 on Linux ADDITIONAL INFORMATION kdeconnectd[1119]: kdeconnect.plugin.sftp: Mount device: "XXX" kdeconnectd[1119]: kdeconnect.plugin.sftp: Created mounter kdeconnectd[1119]: kdeconnect.plugin.sftp: Starting loop to wait for mount kdeconnectd[1119]: kdeconnect.plugin.sftp: Mount device: "XXX" kdeconnectd[1119]: kdeconnect.plugin.sftp: Unmount QObject(0x0) kdeconnectd[1119]: kdeconnect.core: Converting IPv6 QHostAddress("::ffff:192.168.178.29") to IPv4 QHostAddress("192.168.178.29") kdeconnectd[1119]: kdeconnect.plugin.sftp: Starting process: "sshfs kdeconnect@192.168.178.29:/ /run/user/1000/719fb2d6a31cfd4d -p 1739 -s -f -F /dev/null -o IdentityFile=/home/XXX/.config/kdeconnect/privateKey.pem -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o HostKeyAlgorithms=+ssh-dss -o uid=1000 -o gid=1000 -o reconnect -o ServerAliveInterval=30 -o password_stdin" kdeconnectd[1119]: QDBusAbstractAdaptor: Cannot relay signal SftpPlugin::packetReceived(NetworkPacket): Unregistered input type in parameter list: NetworkPacket kdeconnectd[1119]: kdeconnect.plugin.sftp: Process started kdeconnectd[1119]: kdeconnect.plugin.sftp: "XXX" "Remote filesystem mounted at /run/user/1000/719fb2d6a31cfd4d" kernel: fuse: init (API version 7.31) kernel: *** VALIDATE fuse *** kernel: *** VALIDATE fuse *** systemd[1]: Mounting FUSE Control File System... systemd[1]: Mounted FUSE Control File System. kdeconnectd[1119]: kdeconnect.plugin.sftp: stdout: "Unable to negotiate with 192.168.178.29 port 1739: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group1-sha1\r\n" kdeconnectd[1119]: kdeconnect.plugin.sftp: stdout: "read: Connection reset by peer\n" kdeconnectd[1119]: kdeconnect.plugin.sftp: Process failed (exit code: 1 ) kdeconnectd[1119]: kdeconnect.plugin.sftp: Unmount KProcess(0x55837cbda9d0) systemd[975]: run-user-1000-719fb2d6a31cfd4d.mount: Succeeded. systemd[1]: run-user-1000-719fb2d6a31cfd4d.mount: Succeeded. kdeconnectd[1119]: kdeconnect.plugin.sftp: Destroy mounter kdeconnectd[1119]: kdeconnect.plugin.sftp: Unmount QObject(0x0)
Regarding workarounds: since the call to sshfs uses "-F /dev/null", config file for SSH (~/.ssh/config) cannot be used to enable diffie-hellman-group14-sha1. The only workaround I've found is to create a script called "sshfs", with the following content: exec /usr/bin/sshfs -oKexAlgorithms=+diffie-hellman-group14-sha1 "$@" and put it in PATH (before /usr/bin), so that KDE Connect will use it when calling sshfs. After this, I can successfully browse my phone using Dolphin. (Tested on Arch; sshfs binary may be in a different place in other distributions, and then path in the script would need to be changed.)
Has been fixed by adding a key exchange option in the desktop application.
> Has been fixed by adding a key exchange option in the desktop application. Could you please give me the URL to the Git commit so that I can try it out? Thank you.
Oups, I missread the version number. It was the Arch packager who fixed it. The bug should still be there in the repository https://git.archlinux.org/svntogit/community.git/commit/trunk?h=packages/kdeconnect&id=3f4cabc50dab5ea4ca613c4e48808912e4e5fb71
(In reply to David from comment #2) > Has been fixed by adding a key exchange option in the desktop application. Shouldn't this be fixed by fixing the Android app to no longer use deprecated hash algorithms?
Can confirm SOFTWARE/OS VERSIONS App on Android 9 and Android 10 version 1.13.7 kdeconnect 1.3.5 on Linux ADDITIONAL INFORMATION `sudo journalctl --since "1 hour ago" -o cat | grep kdeconnect`: kdeconnect.plugin.sftp: Mount device: "ONEPLUS" kdeconnect.plugin.sftp: Created mounter kdeconnect.plugin.sftp: Starting loop to wait for mount kdeconnect.kio: Stat: QUrl("kdeconnect://77ac0c62ffef87e5/") kdeconnect.plugin.sftp: Mount device: "ONEPLUS" kdeconnect.plugin.sftp: Unmount QObject(0x0) kdeconnect.core: Converting IPv6 QHostAddress("::ffff:10.10.10.224") to IPv4 QHostAddress("10.10.10.224") kdeconnect.plugin.sftp: Starting process: "sshfs kdeconnect@10.10.10.224:/ /run/user/1001/77ac0c62ffef87e5 -p 1744 -s -f -F /dev/null -o IdentityFile=/home/likivik/.config/kdeconnect/privateKey.pem -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o HostKeyAlgorithms=+ssh-dss -o uid=1001 -o gid=100 -o reconnect -o ServerAliveInterval=30 -o password_stdin" kdeconnect.plugin.sftp: Process started kdeconnect.plugin.sftp: "ONEPLUS" "Remote filesystem mounted at /run/user/1001/77ac0c62ffef87e5" kdeconnect.plugin.sftp: stdout: "Unable to negotiate with 10.10.10.224 port 1744: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group1-sha1\r\n" kdeconnect.plugin.sftp: stdout: "read: Connection reset by peer\n" kdeconnect.plugin.sftp: Process failed (exit code: 1 ) kdeconnect.plugin.sftp: Unmount KProcess(0x15ae280) kdeconnect.plugin.sftp: Destroy mounter kdeconnect.plugin.sftp: Unmount QObject(0x0)
I started an "issue" in the GitLab, here: https://invent.kde.org/kde/kdeconnect-android/-/issues/19 I see that solution could work (Though I can't get it to). Would an alternative solution be to compile sshfs with the patch from here?: https://git.archlinux.org/svntogit/community.git/tree/trunk/kdeconnect-openssh-8.2.patch?id=3f4cabc50dab5ea4ca613c4e48808912e4e5fb71
As per discussion in the Telegram group and on the linked merge request https://invent.kde.org/network/kdeconnect-kde/-/merge_requests/239, this was fixed sometime in 2020. Please make a new bug if you see this appear again.