SFTP-сервер с использованием Dropbear
From DD-WRT Wiki
English • Deutsch • Español • Français • Italiano • 日本語 • Polski • Português • Русский • Svenska • 中文(中国大陆) • 中文(台灣) • |
Статья рассказывает
Contents |
[edit] Требования
- Хотя создать образ прошивки, поддерживающий SFTP, не составит труда, требуется маршрутизатор с достаточным количеством свободного места для установки Optware, пока кто-нибудь не сделает это.
- Понадобится Perl, либо с помощью пакета Optware на маршрутизаторе, либо на другом компьютере, он используется в этом руководстве. Вы можете заменить его на какую-либо другую утилиту, которая может редактировать двоичные файлы.
- Разумно отключить встроенный демон Dropbear, прежде чем начать, сделайте это через Telnet. В противном случае, если вы попытаетесь отключить встроенную версию позже, она убьет все процессы Dropbear, включая ваш новый, и вам придется вручную перезапустить новую версию, выполнив следующую команду в веб-интерфейсе.
/opt/etc/init.d/S51dropbear start
[edit] Установка пакетов
- Установите пакет Optware Dropbear.
ipkg-opt install dropbear
- Установите пакет Optware SFTP-сервера.
ipkg-opt install openssh-sftp-server
- Сконфигурируйте /opt/etc/init.d/S51dropbear, чтобы задать необходимые аргументы командной строки Dropbear. Вы можете использовать следующую команду, чтобы узнать аргументы командной строки, используемые по умолчанию:
ps | grep dropbear
[edit] Правка исполняемого файла Dropbear
- Если на вашем маршрутизаторе не установлен Perl, скопируйте исполняемый файл /opt/sbin/dropbear на компьютер, на котором он есть. Убедитесь, что у вас есть резервная копия на случай, если что-то пойдет не так.
- Измените копию исполняемого файла так, чтобы он использовал /opt/libexec/sftp-server вместо /usr/libexec/sftp-server.
perl -pi -e 's/\/usr\/libexec\/sftp-server/\/opt\/libexec\/sftp-server/g' dropbear
- Скопируйте исправленную копию файла в /opt/sbin (вы можете перезаписать существующий /opt/sbin/dropbear, поскольку это просто символическая ссылка на /opt/sbin/dropbearmulti).
[edit] Альтернативный способ, используя встроенную команду sed вместо Perl
sed 's/\/usr\/libexe/\/opt\/libexe/g' dropbearmulti > dropbear.modified
(Это хитрый трюк, всё из-за того, что нельзя получить прямой доступ к /usr/libexec/sftp-server. В противном случае можно было бы просто установить SFTP-сервер OpenSSH и покончить с этим).
[edit] Проверка
- Запустите сервер Dropbear.
/opt/etc/init.d/S51dropbear start
- Попытайтесь соединиться с использованием клиента SFTP. Он должен работать!