В Double Commander передача файлов по SSH осуществляется через встроенный FTP-плагин (несмотря на название, он работает с протоколами SFTP и SCP).
Вот пошаговая инструкция:
1. Подготовка: установка библиотеки libssh2
Для работы SSH-подключения в Double Commander необходима библиотека libssh2.
Windows: библиотека libssh2.dll должна быть в папке с установленной программой. Убедитесь, что она есть, особенно если вы используете портативную версию. Также см. врезку "Windows: проверка наличия библиотеки libssh2.dll" далее.
macOS: на компьютерах с Apple Silicon (M1/M2) может потребоваться установить библиотеку через Homebrew. В терминале выполните: `brew install libssh2`.
Ubuntu/Linux: библиотека libssh2 обычно уже установлена. Если же нет, то выполните команды sudo apt update и sudo apt install libssh2-1 (подробнее см. врезку "Ubuntu/Linux: проверка наличия библиотеки libssh2" далее).
Если Double Commander не находит libssh2.dll, то самое простое решение — поместить её в папку с исполняемым файлом doublecmd.exe. Однако есть важные нюансы, которые нужно учесть, чтобы всё заработало.
Почему библиотека может не находиться. Причина почти всегда в одном из двух пунктов:
1. Несоответствие разрядности (x64 vs x86): разрядность библиотеки libssh2.dll обязана совпадать с разрядностью вашей версии Double Commander. Если у вас установлена 64-битная (x64) версия программы, библиотека тоже должна быть 64-битной, и наоборот. Использование несовместимой версии — одна из самых частых причин ошибки.
2. Отсутствие библиотеки в некоторых сборках: например, в 32-битной версии Double Commander 0.8.2 для Windows библиотека libssh2.dll отсутствовала намеренно, чтобы сохранить совместимость с Windows XP. В таких случаях её нужно добавить вручную.
Правильное место для библиотеки. Самый надежный способ — положить файл libssh2.dll в ту же папку, где находится файл doublecmd.exe. При таком размещении программа гарантированно найдёт библиотеку при запуске.
[Где взять библиотеку libssh2.dll]
Если в вашей версии Double Commander её нет, или текущая версия не работает, можно попробовать следующие варианты:
1. Из портативной версии: cкачайте портативную сборку той же версии Double Commander, что и у вас, и скопируйте из её папки файл libssh2.dll.
2. Из официальных источников: d некоторых случаях разработчики рекомендуют использовать библиотеку из сборки curl для Windows или из плагина SFTP для Total Commander, так как они могут содержать необходимые компоненты шифрования.
3. Отдельная загрузка: vожно найти и скачать скомпилированный файл libssh2.dll для Windows из проверенных репозиториев, например, с GitHub. При использовании такого файла убедитесь, что он подходит по разрядности вашей системе.
Прежде чем искать файл, удобно проверить, установлен ли пакет с этой библиотекой через менеджер пакетов dpkg:
dpkg --list | grep libssh2
Если в выводе вы видите строку с libssh2-1 (например, ii libssh2-1 ...), значит библиотека установлена, и её файл точно должен быть в системе.
Если ничего не найдено, то, скорее всего, библиотека не установлена. Её можно установить командой:
sudo apt update sudo apt install libssh2-1
[Поиск файла libssh2.so]
Чтобы найти все файлы, связанные с libssh2, используйте команду find для поиска по всему корню системы:
sudo find / -name "libssh2.so*" 2>/dev/null
Что делает эта команда:
sudo — дает права суперпользователя (нужны для чтения некоторых системных папок).
find / — начинает поиск с корневой директории.
-name "libssh2.so*" — ищет файлы, чьё имя начинается с libssh2.so (звездочка * нужна, чтобы найти все версии библиотеки, например, libssh2.so.1 или libssh2.so.1.0.1).
2>/dev/null — скрывает сообщения об ошибках (например, о недостатке прав доступа к некоторым папкам), чтобы результат был чище.
Ожидаемый результат: обычно библиотека находится в папке /usr/lib/x86_64-linux-gnu/, и вы увидите что-то вроде:
/usr/lib/x86_64-linux-gnu/libssh2.so.1.0.1
[Альтернативный способ: поиск через whereis или locate]
Если не хотите использовать find, можно попробовать другие команды:
whereis libssh2 — покажет примерное расположение файлов, но не всегда гарантирует точный путь к самой библиотеке.
locate libssh2.so — работает быстрее, так как ищет по заранее созданной базе данных. Однако если база устарела, результат может быть неполным. Чтобы обновить её, выполните sudo updatedb (это может занять некоторое время).
[Настройка подключения (SFTP/SCP)]
Как настроить Double Commander для передачи файлов между двумя компьютерами Ubuntu?
Для обмена файлами между двумя компьютерами с Ubuntu через Double Commander, вам нужно будет настроить подключение по протоколу SSH (SFTP). Основная идея проста: вы используете встроенный FTP-плагин, чтобы подключиться к удаленному компьютеру, как к обычной папке. Ниже описаны основные шаги для настройки подключения.
1. Проверьте, что на удаленном компьютере поднят сервер ssh, и у вас есть к нему доступ. Проверку доступности можно реализовать с помощью команд nmap и ssh.
2. Откройте плагин FTP: в Double Commander перейдите на панель с дисками и выберите плагин `wfx://FTP`.
3. Создайте новое подключение: в открывшемся окне нажмите кнопку "Add connection".
4. Введите параметры сервера:
- В поле "Host" укажите IP-адрес или сетевое имя второго компьютера Ubuntu. - Введите имя пользователя и пароль для входа на тот компьютер.
5. Включите SSH-протокол: перейдите на вкладку "Advanced" (или "Дополнительно") и обязательно включите опцию "SSH+SCP". Без этого подключение не будет защищенным.
6. Подключитесь: нажмите "Connect" или "OK", чтобы установить соединение. После этого удаленная файловая система будет отображаться в панели Double Commander, и вы сможете копировать файлы между окнами.
[Что делать, если ничего не работает]
Подключение создано, но оно не работает. При попытке подключения Double Commander выдает сообщение "Can not connect to the server!". Ниже перечислены несколько возможных причин проблемы и способы решения.
1. Проблема с библиотекой libssh2.so. Если опция "SSH" неактивна: то это означает, что Double Commander не находит необходимую библиотеку libssh2.so. В Ubuntu она должна быть установлена. Если ее нет, откройте терминал и выполните:
sudo apt update sudo apt install libssh2-1
После установки библиотеки перезапустите Double Commander. Если это не помогло, создайте символическую ссылку на библиотеку libssh2:
2. Не удается подключиться. Проверьте, доступен ли второй компьютер в сети (попробуйте пропинговать его) и не блокирует ли его брандмауэр.
3. Проверьте настройки на вкладке "Advanced". Ошибка часто возникает из-за неверных настроек на вкладке "Advanced".
- Отключите SSH-агент: В настройках подключения, на вкладке "Advanced", найдите опцию "SSH-agent authentication". Попробуйте снять этот флажок. Иногда использование агента сбивает программу с толку.
- Убедитесь в выборе протокола: На этой же вкладке в выпадающем меню "SSH" должны быть выбраны варианты "SSH+SCP" или "SFTP". Попробуйте переключить между ними, так как некоторые серверы поддерживают только один из режимов.
- Проверьте ключи (если используете): Если вы используете ключи для входа, убедитесь, что выбранный ключ — это RSA. Как показано в одном из отчетов об ошибках, старая версия библиотеки libssh2 может не поддерживать более современные ключи ECDSA и ED25519. Вам может понадобиться сгенерировать новый ключ RSA специально для Double Commander.
4. Проблема с именами mDNS. В некоторых случаях Double Commander некорректно работает с доменными именами .local [2]. Попробуйте в поле "Host" указать не имя_хоста.local, а его IP-адрес (192.168.a.b). У меня как раз была именно эта проблема.
5. Повторный запрос пароля при копировании: в старых версиях при использовании ключа с паролем программа могла запрашивать его на каждый файл. Эта проблема была исправлена в актуальных версиях, и пароль кэшируется.
6. Пустая панель после подключения: убедитесь, что в поле "Remote dir" указан корректный путь. Если оставить его пустым или указать `~`, Double Commander должен открыть домашнюю директорию. В некоторых случаях для серверов Windows может потребоваться указать команду инициализации (например, `C:`) во вкладке "Advanced".
7. "Quick connection" не работает. Иногда быстрое подключение через соответствующую кнопку может завершаться ошибкой. Рекомендуется создавать и использовать сохраненные соединения — они работают стабильнее.
Если ничего не помогает, загляните в лог-файл Double Commander. Он обычно находится здесь:
~/.config/doublecmd/doublecmd.log
Откройте этот файл после неудачной попытки подключения и найдите строки с ошибками. Там может быть более детальное описание проблемы (например, libssh2 error: ...).
[Известная проблема с ключами]
Если в логе вы видите что-то про ssh-userauth или ECDSA, то это проблема с поддержкой алгоритмов шифрования. Библиотека libssh2 1.11.0 иногда не поддерживает современные ключи ED25519 или ECDSA. Решение:
1. Сгенерируйте обычный RSA-ключ на удалённой машине: