📦 Как собрать curl с поддержкой SFTP – Information Security Squad
📦 Как собрать curl с поддержкой SFTP
Пакет curl может быть собран с поддержкой SFTP.
Узнайте, как легко это сделать.
Curl – очень полезный инструмент для администраторов Linux.
Curl не только позволяет вам передавать файлы на удаленные серверы и с них, используя любое количество различных протоколов, но и с помощью команды curl вы также можете расширить свои возможности скриптов и многое другое.
Тем не менее, с точки зрения безопасности, стандартного набора curl не хватает в одном конкретном протоколе – протоколе безопасной передачи файлов (SFTP).
Если вы введете команду curl -V, вы увидите, что из коробки в curl включено несколько протоколов.
Однако SFTP отсутствует.
Но что, если вы хотите использовать curl таким образом, чтобы для него требовалась поддержка SFTP?
Скажем, например, вам нужно перенести данные на сервер, который использует SFTP.
С curl вы можете попробовать сделать:
curl sftp:/SERVER -u USER
Где SERVER – это IP-адрес или домен сервера, а USER – имя удаленного пользователя.
Из коробки это не сработает.
Чтобы заставить curl работать с SFTP, вы должны создать его с поддержкой этого протакола.
Давайте узнаем, как.
Я буду демонстрировать это на Ubuntu Server 18.04.

Скачаем исходники

Первое, что нужно сделать, это загрузить и распаковать исходный код curl.

Для этого откройте окно терминала и введите следующие команды:

sudo apt-get install build-essential debhelper libssh-dev
sudo apt-get source curl
sudo apt-get build-dep curl
Затем перейдите во вновь созданный каталог с помощью команды:
cd curl-XXX/

Где XXX – номер релиза.

Из этого каталога загрузите необходимый патч с помощью команды:

sudo wget https://bugs.launchpad.net/ubuntu/+source/curl/+bug/311029/+attachment/5234644/+files/ubuntu_libssl.patch

Как только патч будет загружен, примените его с помощью команды:

sudo patch debian/rules < ubuntu_libssl.patch

Как собрать пакет curl

Теперь мы можем собрать пакет curl с помощью команды:

sudo dpkg-buildpackage -uc -us -b

Вышеуказанные аргументы:

  • -us – не подписывать исходный пакет.
  • -uc -не подписывать файл .changes.
  • -b – не пытаться применить изменения к неупакованному апстриму
Сборка может занять некоторое время, поэтому расслабьтесь или возьмите другую задачу на это время.

Как установить пакеты

Теперь перейдите из этого каталога выше с помощью команды:

cd ..
Теперь вы должны найти три .deb файла. Установите эти файлы с помощью команды:
sudo dpkg -i *.deb
После завершения установки у вас должен быть собран curl с поддержкой SFTP

Предостережения

Проблема со сброкой таким образом заключается в том, что если curl обновляется с помощью apt или apt-get,  и это нарушит поддержку.

Чтобы обойти это, вы должны выполнить следующие три команды:

sudo apt-mark hold curl
sudo apt-mark hold libcurl3
sudo apt-mark hold libcurl3-gnutls
Вышеуказанные команды могут предотвратить будущие обновления некоторых пакетов, в зависимости от того, что вы установили.
Если это произойдет, вам нужно будет выполнить команды:
sudo apt-mark unhold curl
sudo apt-mark unhold libcurl3
sudo apt-mark unhold libcurl3-gnutls
И вот, друзья мои, вы так встроили поддержку SFTP в пакет curl. 

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *