Настройка 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.

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

Создание архива без сохранения абсолютного пути в UNIX

Февраль 20, 2018 г.

Если вы укажите полный путь архивируемой папки в UNIX, то файлы будут размещены в архиве вместе полным путем. Не всегда это удобно и правильно, зависит от выполняемой задачи. Как отсечь абсолютные пути, оставив только относительные? Для этого ...

Читать

Диагностика varnish, полезные команды

Май 30, 2018 г.

Занимался пару дней перетряхиванием конфигурации varnish на веб-сервере, решил запротоколировать некоторые моменты, если вдруг понадобится на будущее. ...

Читать

Пароль root от mysql - где взять?

Июнь 22, 2017 г.

Чтобы посмотреть root пароль от mySQL на unix - хостинге, нужны: Достаточные права (root-доступ) Знать где смотреть :) Первое условие вам придется обеспечить самостоятельно, а со вторым - я вам помогу. Текстовый файл с паролем в открытом ...

Читать

Удаление большого числа файлов в UNIX

Ноябрь 23, 2015 г.

Столкнулся недавно с такой проблемой - не смог файловым менеджером даже просто открыть папку с временными файлами на своём веб-сервере под UNIX. Размер, папки, т.е. сам список файлов оказался объемом в 85 мегабайт. Сколько там файлов, я даже не представляю. ...

Читать
 

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

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



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