sftp 和 SMB 在 Dolphin 中失败,但从控制台可以工作

sftp 和 SMB 在 Dolphin 中失败,但从控制台可以工作

我在 openSUSE Leap 42 上运行 KDE,我可以从控制台顺利连接到 sftp 服务器:

sftp <user>@<server>

但是,当我在 Dolphin 中尝试相同操作时:

sftp://<user>@<server>

我收到此消息:

kex error : no match for method mac algo client->server: server [hmac-sha2-256,[email protected],hmac-sha2-512,[email protected],[email protected],[email protected]], client [hmac-sha1]

我已经检查过 openssh 是否是最新的,尽管我不太确定在我的计算机上哪里可以找到引用的 sha2 算法,但我认为它们必须已经安装,否则命令行 sftp 连接将无法工作。快速搜索只找到了一个提供商/usr/bin/sftp,即openssh,因此看起来这是在两种情况下都在运行的,而 Dolphin 没有使用不同的 sftp 实现。

那么:为什么 Dolphin 不能使用 sftp 命令似乎很乐意支持的算法?我也没有发现任何地方有 Dolphin 独有的 sftp 配置。

该服务器是运行最新 DSM(6.1)的 Synology NAS 设备——我实际上无法更改配置。

更新 SAMBA 似乎也存在类似的问题:我正在访问 SAMBA 共享(来自 w Windows 服务器),这些共享最近已更新为需要协议版本 3.0 及以上。您知道吗,我smb://*使用 dolphin 的所有快捷方式现在都失败了,但mount -t cifs *只要我指定 ,仍然可以正常工作-o vers=3.0

这意味着 dolphin 要么使用协议的不同实现,要么使用协议的包装器,从而删除了命令行版本所具有的许多选项(比如,我认为可以访问最新的协议版本)。

...或者也许有一种方法可以在海豚的 URL 行中指定一些我不知道的额外参数?

答案1

部分解决方案(仅适用于 SMB):

根据此错误报告,问题在于smbhelper,它仍然默认使用 SMB1,并且除非明确告知,否则不会提高(这对我来说似乎是个糟糕的想法,但我没有开发它,所以也许当时有一个合理的理由?)

您可以smbhelper通过创建文件来改变其行为~/.smb/smb.conf,文件内容如下:

[global]
    client max protocol = SMB3

此后,我已在 Dolphin 中收藏的所有 SMB 连接均能正常运行。

更多不起作用的事情:

我还尝试将该client max protocol行添加到全局输入smb.conf\etc\samba\并将其从本地输入中删除),但奇怪的是,这只对我尝试访问的 SAMBA 共享的子集有效。由于本地解决方案对我来说没问题,所以在这种情况下这不是问题,尽管在多用户机器上这会很烦人...

我之前曾得到过添加的建议,min protocol = SMB3但这/etc/samba/smb.conf对我没有任何帮助。

当然,如何说服 Dolphin 使用现代 sftp 密码仍然是个谜...

相关内容