Настройка SSH-туннеля для доступа к OpenAI API из недоступной страны

В эпоху блокировок, санкций актуальным становятся пробросы туннелей до определенных сервисов. Расскажу на примере SSH-туннеля для доступа к OpenAI API из России.

Т.е. ваш сервер размещен в стране, где доступ к api.openai.com ограничен, но хотите использовать OpenAI API. Для этого нужно пробросить трафик через внешний сервер с помощью SSH-туннеля. Это позволяет обойти блокировку и отправлять запросы на OpenAI, как будто вы находитесь за границей.

В этой статье пошагово разберём, как это сделать.

Как это работает

Суть идеи:

  • У вас есть локальный сервер в России (назовём его ru_server).
  • Есть зарубежный VPS с доступом к api.openai.com (назовём его VPS_ABROAD).
  • Мы создаём туннель, по которому весь трафик с ru_server на api.openai.com:443 проксируется через VPS_ABROAD.
  • Локальные запросы к 127.0.0.1:8080 на ru_server становятся эквивалентом подключения к api.openai.com:443 с зарубежного сервера.

Ручной запуск SSH-туннеля

Запуск туннеля на ru_server выполняется командой:

Расшифровка:

  • -v — вывод отладочной информации (не обязательно)
  • -N — не выполнять команды, только туннелирование
  • -L 127.0.0.1:8080:api.openai.com:443 — проброс локального порта 8080 на api.openai.com:443

Важно: должен быть настроен доступ по SSH-ключу к openaitunnel@VPS_ABROAD_IP_ADDRESS.

Как видите, вся операция выполняется буквально одной командой. Но нам нужно еще настроить авторизацию по ssh, которая в примере выполняется через учетную запись пользователя openaitunnel.

Создадим пользователя и настроим его на прием авторизации по ssh token.

Настройка VPS_ABROAD

Создание отдельного SSH-пользователя:

Теперь для авторизации (чтобы не вводить и не светить пароль) мы добавим один из публичных ключей пользователя root с ru_server в

на vps_abroad.

Скорее всего, ключ нужно будет создать. Выполним на ru_server для пользователя root:

У вас появятся ключи:

  • приватный ключ: /root/.ssh/id_ed25519
  • публичный ключ: /root/.ssh/id_ed25519.pub

Теперь публичный ключ добавим в authorized_keys юзера openaitunnel на vps_abroad. Это можно сделать вручную, но на самом деле есть специальная утилита ssh-copy-id, которая делает это за нас.

Выполняем на ru_server:

После этих манипуляция, команда установки туннеля не только будет работать, но и перестанет запрашивать пароль для openaitunnel.

Тестирование работы туннеля

Для работы туннеля нужно, чтобы vps_abroad имел доступ к OpenAI. Давайте используем запрос API, выдающий список моделей для теста.

Проверив, что сервер действительно имеет доступ к OpenAI, можно тестировать ru_server (через туннель). Туннель можно открыть в одной сессии, а тест выполнять в другой, чтобы не закрывать туннель.

Если всё настроено верно — вы получите список моделей от OpenAI.

Создание демона с помощью autossh

Чтобы туннель не приходилось запускать вручную, используем autossh и создадим systemd-сервис.

Установка autossh

Файл сервиса /etc/systemd/system/openai-tunnel.service

Активация сервиса

Проверьте статус: если активен — всё готово.


Теперь ваш ru_server может обращаться к OpenAI API как будто он находится за границей, и это работает в фоне автоматически после каждой перезагрузки. Отличное решение для хостинга в РФ при работе с зарубежными API.

Мало букафф? Читайте есчо !

Непослушные файлы или конфликт кодировок при копировании через FTP

Август 22, 2011 г.

Сайты иногда переезжают с одного хостинга на другой. И когда это случается, приходится выполнить как минимум две операции - копирование файлов и копирование базы данных на промежуточный хост. Этот промежуточный хост, обычно, рабочая станция под управлением ...

Читать

GREP - показываем только ближайшее символы от найденного совпадения

Ноябрь 28, 2018 г.

По умолчанию GREP выводит всю строку, где был обнаружен указанный вами шаблон поиска. Для форматированных текстовых файлов это подходит. Но если в поиск попадает минифицированный текстовый или binary файл, то в консоль вываливается неприлично много текста. ...

Читать

Полезные команды для админа хостинга на UNIX

Август 22, 2013 г.

Те кто постоянно работает в командной строке UNIX, не находят ничего сложного в использовании разных утилит. Мне иногда приходится общаться с UNIX через ...

Читать

Копируем файлы с AWS S3

Сентябрь 26, 2019 г.

На AWS файлы копятся в течении жизни проекта, а для разработки иногда удобнее иметь их локально. Как перетащить их из облака (и закинуть потом обратно), пользуясь консолью, расскажу в статье. Направление операции копирования в данном случае не ...

Читать
 

Комментарии к «Настройка SSH-туннеля для доступа к OpenAI API из недоступной страны»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: