| 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 [Поиск файла 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_хоста 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 После установки библиотеки перезапустите 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. |