Sftp и SMB терпят неудачу в Dolphin, но работают с консоли
Я использую KDE на openSUSE Leap 42, и я могу нормально подключиться к серверу sftp из консоли:
sftp <user>@<server>
Тем не менее, когда я пытаюсь сделать то же самое в Dolphin:
sftp://<user>@<server>
Я получаю это сообщение:
kex error : no match for method mac algo client->server: server [hmac-sha2-256,hmac-sha2-256-etm@openssh.com,hmac-sha2-512,hmac-sha2-512-etm@openssh.com,umac-128-etm@openssh.com,umac-128@openssh.com], client [hmac-sha1]
Я проверил, что openssh является текущим, и хотя я не совсем уверен, где я могу найти процитированные алгоритмы sha2 на моей машине, я предполагаю, что они должны быть установлены, потому что иначе соединение sftp командной строки не могло бы работать. быстрый поиск находит только одного поставщика /usr/bin/sftp
, который openssh
, поэтому может показаться, что это то, что работает в обоих случаях, и Dolphin не использует другую реализацию sftp.
Итак: Почему бы Dolphin не смог использовать алгоритм, который команда sftp, кажется, счастливо поддерживает? Я не нашел ни одного места с конфигурацией sftp, которое было бы эксклюзивным для Dolphin.
Сервер представляет собой устройство Synology NAS с последней версией DSM (6.1), и я не могу изменить конфигурацию.
Обновление Похоже, что для SAMBA существует очень похожая проблема: я обращаюсь к общим ресурсам SAMBA (с w-сервера Windows), которые недавно были обновлены и теперь требуют версии протокола 3.0 и выше. И разве ты не знаешь это, все мои smb://*
ярлыки у дельфина терпят неудачу сейчас, но mount -t cifs *
до сих пор работает просто отлично, пока я указываю -o vers=3.0
,
Это означает, что dolphin использует другую реализацию протоколов или оболочку для них, которая удаляет многие параметры, доступные в версии командной строки (например, доступ к последним версиям протокола).
... или, может быть, есть способ указать некоторые дополнительные параметры в строке URL в дельфине, о которых я не знаю?
1 ответ
Частичное решение (только для малого и среднего бизнеса):
Согласно этому сообщению об ошибке, проблема заключается в smbhelper
, который все еще привязан к SMB1 по умолчанию и отказывается подниматься выше, если явно не сказано об этом (мне кажется, это ужасная идея, но я ее не разработал, так что, может быть, есть причина, которая имела смысл в то время?)
Ты можешь сказать smbhelper
изменить свое поведение, создав файл ~/.smb/smb.conf
со следующим содержанием:
[global]
client max protocol = SMB3
После этого все подключения SMB, которые я добавил в закладки в Dolphin, работали без проблем.
Больше вещей, которые не работают:
Я также попытался добавить client max protocol
линия к глобальному smb.conf
в \etc\samba\
(и удаляя его из локального), но как ни странно, это работало только для подмножества общих ресурсов SAMBA, к которым я пытаюсь получить доступ. Поскольку локальное решение мне подходит, в данном случае это не проблема, хотя на многопользовательских машинах это будет раздражать...
Я ранее получил совет, чтобы добавить min protocol = SMB3
к /etc/samba/smb.conf
но это ничего не сделало для меня.
И, конечно же, это все еще оставляет загадку, как убедить Дельфина использовать современные sftp-шифры...