Администрирование FreeBSD, Linux, ... Double Commander: передача файлов через SSH Wed, September 02 2026  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Double Commander: передача файлов через SSH Печать
Добавил(а) microsin   

В 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.

nmap имя_или_IP_хоста
ssh имяпользователя@имя_или_IP_хоста

2. Откройте плагин FTP: в Double Commander перейдите на панель с дисками и выберите плагин `wfx://FTP`.

3. Создайте новое подключение: в открывшемся окне нажмите кнопку "Add connection".

4. Введите параметры сервера:

- В поле "Host" укажите IP-адрес или сетевое имя второго компьютера Ubuntu.
- Введите имя пользователя и пароль для входа на тот компьютер.

Double Commander SSH SCP fig01

5. Включите SSH-протокол: перейдите на вкладку "Advanced" (или "Дополнительно") и обязательно включите опцию "SSH+SCP". Без этого подключение не будет защищенным.

Double Commander SSH SCP fig02

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:

sudo ln -s /usr/lib/x86_64-linux-gnu/libssh2.so.1 /usr/local/lib/libssh2.so

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-ключ на удалённой машине:

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_doublecmd

2. Добавьте публичный ключ в ~/.ssh/authorized_keys на удалённом компьютере.

3. В Double Commander на вкладке "Advanced" укажите путь к новому приватному ключу.

[Ссылки]

1. Ubuntu FAQ.
2. Ubuntu: как обращаться к хосту не по IP, а по имени?
3. sshfs: монтирование файловой системы удаленного сервера.

 

Добавить комментарий


Защитный код
Обновить

Top of Page