Skip to main content

Вход через сессии и API-ключи вместо токена

· 4 min

До сих пор у аккаунта был один токен на все устройства. tuna login сохранял его в конфигурационный файл, а тот же токен копировали в CI, Docker и фоновые сервисы. Отозвать доступ одного ноутбука было нельзя: перевыпуск токена ломал туннели везде.

В tuna-cli 0.39 это поменялось. CLI на ноутбуке входит через сессию устройства, а для CI, серверов и сервисов вместо токена — API-ключи с нужными правами. Старый токен продолжает работать, но CLI предупреждает о замене.

Коротко
  • tuna login входит через браузер и создаёт сессию устройства. Сессии видны в профиле, завершённая сессия сразу останавливает туннели устройства.
  • Tuna Token переехал в API-ключи. Старый токен уже перенесён в ключ с правом на запуск туннелей и работает как раньше.
  • В CI и Docker замените TUNA_TOKEN на TUNA_API_KEY, сервисы переустановите. Terraform и Kubernetes-оператор уже работают на ключах.

Вход через сессию устройства​

tuna login

Откроется браузер, после подтверждения CLI сохранит сессию в системное хранилище ключей: Keychain в macOS, Credential Manager в Windows, Secret Service в Linux. Tuna Desktop с версии 0.3 тоже входит через сессию устройства.

На сервере без браузера войдите по ссылке: tuna login --no-browser покажет ссылку и код, а подтвердить вход можно с любого устройства, где вы уже вошли. Если вы зашли на сервер по SSH, CLI предложит этот способ сам.

Каждое устройство — отдельная сессия. Список виден в профиле и в tuna session list. Если ноутбук потерян, завершите его сессию в профиле: туннели этого устройства остановятся сразу, а остальные продолжат работать. Жёсткого срока у сессии нет, она завершается после 30 дней без использования, а работающий туннель продлевает её сам.

API-ключи вместо Tuna Token​

Для всего, что работает без человека, — CI, серверов, Docker, коллеги с отдельным доступом — теперь выпускается API-ключ. В кабинете откройте API ключи → Новый ключ и выберите Для туннелей:

Форма нового API-ключа: выбран вариант «Для туннелей», включён запуск туннелей, ниже ограничения — HTTP-туннели, TCP и SSH туннели, лимиты активных и созданных туннелей

Такой ключ поднимает туннели, но не ходит в API. Его можно ограничить типами туннелей — только HTTP или только TCP и SSH, — числом одновременно работающих туннелей и сроком действия. Ключ показывается один раз, сразу с готовыми командами:

Окно созданного ключа: предупреждение сохранить ключ сейчас, скрытый ключ tak_ и команды для CI с TUNA_API_KEY и для сервера с tuna login --with-api-key

При регистрации токен больше не выпускается: вместо страницы токена в кабинете — страница API-ключей.

Что будет со старым токеном​

Ничего не сломается. Все токены tt_… перенесены в API-ключи с правом на запуск туннелей: они поднимают туннели, как раньше, а в API, как и раньше, не ходят. Старые версии CLI и Tuna Desktop тоже продолжают работать.

Новый CLI принимает TUNA_TOKEN, флаг --token и поле token в конфигурационном файле, но пишет предупреждение о замене. Сроков отключения старых токенов пока нет. Когда решим, предупредим заранее.

Что сделать​

  • Ноутбук. Выполните tuna login.
  • CI и Docker. Переименуйте переменную TUNA_TOKEN в TUNA_API_KEY или передайте ключ флагом --api-key. Значение подойдёт то же самое, но лучше выпустить отдельный ключ под каждую задачу, чтобы отзывать его, не затрагивая остальные.
  • Фоновые сервисы. Войдите через tuna login и переустановите сервис командой tuna service install. Теперь каждый сервис получает свой ключ, привязанный к типу туннеля и к адресу, если он задан, а tuna service uninstall этот ключ отзывает.
  • Terraform и Kubernetes-оператор. Ничего делать не нужно: провайдер и оператор с самого начала работают на API-ключах.

Подробная инструкция по каждому случаю, включая серверы без хранилища ключей и вопросы о tuna logout, — в разделе Переход на сессии и API-ключи.

Leave feedback​

If you enjoy using Tuna, or on the contrary you are not happy with something, please leave feedback.

News​

We announce new features and posts on our Telegram channel. Subscribe so you don't miss anything.

Help​

We value our users and carefully review every request. If you have any problems with tuna, please contact us in one of the following ways: