Как настроить прокси для SFTP в терминале Ubuntu

Вопрос или проблема

Я установил прокси для curl и wget, используя команды:

export http_proxy="http://xxx.xx.xx.xx:8080"
export https_proxy="https://xxx.xx.xx.xx:8080"

Они работают. Поэтому я попробовал

export sftp_proxy="http://xxx.xx.xx.xx:8080"
export sftp_proxy="https://xxx.xx.xx.xx:8080"

Но соединение истекает по времени.

OpenSSH не использует эти переменные окружения. Чтобы туннелировать ваши SSH соединения через HTTP CONNECT прокси, вам нужно найти специальный прокси клиент и указать его в опции ProxyCommand OpenSSH.
– либо используя опцию ssh -o в командной строке, либо используя конфигурационный файл ~/.ssh/config, в зависимости от вашего предпочтения.

Один из распространенных HTTP прокси клиентов – это proxytunnel, его можно использовать следующим образом:

Host *
    ProxyCommand "proxytunnel -p xxx.xx.xx.xx:8080 -d %h:%p"

Если вам нужен доступ к прокси через HTTPS, добавьте опцию -E к proxytunnel (не к ssh).

(Обычно это либо http: или https:, если они не на разных портах – ваш первоначальный пример использования обоих способов на одном порту 8080 кажется немного странным. То, как вы получаете доступ к прокси, отличается от того, что вы туннелируете через прокси.)

Ответ или решение

Установка прокси для SFTP в Ubuntu через терминал может быть сложной задачей, поскольку OpenSSH, который используется для SFTP, не поддерживает прямую настройку прокси через стандартные сетевые переменные окружения, такие как http_proxy или https_proxy. Рассмотрим, как можно обойти это ограничение.

Понимание проблемы

Сначала необходимо понять, что переменные окружения, используемые для curl и wget, не применимы к OpenSSH и, соответственно, к SFTP. При работе с OpenSSH для маршрутизации через HTTP-прокси требуется применение других методов, таких как использование команды ProxyCommand.

Решение с использованием Proxytunnel

  1. Установка Proxytunnel:

    • Для начала установите proxytunnel из стандартного репозитория Ubuntu. Для этого выполните команду:
      sudo apt-get install proxytunnel
  2. Настройка SSH для использования прокси:

    • Для того чтобы указать SSH использовать HTTP-прокси, необходимо изменить конфигурационный файл SSH или использовать специальный флаг командной строки.
    • Вы можете изменить файл конфигурации SSH, расположенный по пути ~/.ssh/config, следующим образом:
      Host *
       ProxyCommand proxytunnel -p xxx.xx.xx.xx:8080 -d %h:%p

      Здесь xxx.xx.xx.xx:8080 — это IP-адрес и порт вашего HTTP-прокси, %h и %p — это хост и порт, к которому вы желаете подключиться через SFTP.

  3. Дополнительные параметры:

    • В случае, если прокси-сервер требует HTTPS-соединения, включите флаг -E в командную строку proxytunnel:
      ProxyCommand proxytunnel -E -p xxx.xx.xx.xx:8080 -d %h:%p
    • Убедитесь, что ваш прокси-сервер корректно поддерживает указанный тип подключения (HTTP или HTTPS).

Проверка работоспособности

После настройки конфигурационного файла, проверьте подключение с использованием SFTP:

sftp user@remote_host

Если конфигурация выполнена правильно, соединение должно будет проходить через указанный прокси.

Заключение

Использование proxytunnel позволяет настроить проведение SFTP-сессий через HTTP-прокси с помощью OpenSSH. Это решение особенно полезно в ограниченных сетевых окружениях, где непосредственные соединения запрещены или ограничены. Убедитесь, что вы корректно настроили все параметры, и ваше соединение должно проходить без проблем.

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

Капча загружается...