SSHd туннель
Доступно только по подписке.
Обзор
Tuna содержит встроенный SSH-сервер, это позволяет создать туннель и предоставить удаленный доступ по SSH без необходимости запускать SSH сервер и какой-либо конфигурации со стороны пользователя. Помимо функционала обычного SSH-сервера, tuna позволяет записывать сессии пользователей и просматривать их.
Создание SSHd туннеля доступно только в Unix-подобных операционных системах (macOS, Linux, FreeBSD), Windows не поддерживается.
Примеры
Все актуальные флаги, подсказки и примеры можно посмотреть вызвав справ ку:
tuna ssh --help
Почти для всех флагов есть аналогичные переменные окружения.
Базовый пример
tuna ssh
После запуска будет выведена инструкция для подключения:
Connection instruction:
1. echo "[ru.tuna.am]:12524 ssh-ed25519 xxx" >> ~/.ssh/known_hosts
2. ssh -p 12524 ru.tuna.am
3. ru.tuna.am's password: fsk3xdpgqpje7m5l
По умолчанию принимается любой логин, а пароль генерируется автоматически и выводится в консоли.
Адрес туннельных нод является публичным, злоумышленники могут просканировать порты, найти запущенные SSHd туннели и вести подбор пароля. По этому мы не рекомендуем использовать аутентификацию по паролю, особенно для долгоживущих SSHd туннелей запущенных как сервис. Ниже есть инструкция как включить аутентификацию по ssh ключу и запретить аутентификацию с помощью пароля
Статичный пароль
Логин и пароль можно определить статически, с помощью флага --auth
или переменной окружения TUNA_SSH_AUTH
:
tuna ssh --auth="*:pass"
Где *
означает, что проверка имени производиться не будет, для ограничения по имени пользователя следует использовать следующий формат:
tuna ssh --auth="user:pass"
Аутентификация по ssh ключу
Для аутентификации по ключам, необходимо предварительно добавить публичный ключ в разделе SSH ключи в личном кабинете. А также на этой же странице, в настройках, включить - Разрешить подключения с помощью своих SSH ключей. В случае команды у вас может быть какой то общий ключ, и вы можете - Разрешить подключения участникам команды
- На странице SSH ключей - добавить публичный ключ.
- Разрешить подключения в SSH туннелях с помощью своих SSH ключей:

Запретить аутентификацию с помощью пароля
tuna ssh --password-auth=false
С указанием токена
Можно указать специфичный токен через флаг --token
или переменную окружения TUNA_TOKEN
. Переопределение происходит в соответствии с политикой очерёдности конфигурации.
tuna ssh --token=tt_***
С указанием региона для подключения
Можно указать специфичный регион через флаг --location
/-l
или переменную окружения TUNA_LOCATION
. Переопределение происходит в соответствии с политикой очерёдности конфигурации.
tuna ssh --location=nl
Статичный порт
В качестве значения флага --port
/-p
может выступать алиас или назначенный порт.
Порты можно резервировать в личном кабинете и после перезапуска туннеля адрес останется прежним.
Подробнее о портах читайте в отдельной инструкции.
tuna ssh --port=ssh
tuna ssh --port=35000
Ограничение доступа по подсетям IP
Вы можете определить белый список подсетей в CIDR-формате:
tuna ssh --cidr-allow="10.0.0.1/32"
Либо запретить доступ из определенных подсетей:
tuna ssh --cidr-deny="10.0.0.1/32"
Можно комбинировать, например указать широкую сеть и вычесть частные IP:
tuna ssh --cidr-allow="10.0.0.1/24" --cidr-deny="10.0.0.33/32"
Также можно передавать списки через запятую:
tuna ssh --cidr-allow="10.0.0.1/24,192.168.0.1/24" --cidr-deny="10.0.0.33/32,192.168.0.33/32"
Запись SSH сессий
Запись сессий включено по умолчанию, управляется флагом --record-session
или переменной окружения TUNA_RECORD_SESSION
:
tuna ssh --record-session=false
Управление и просмотр SSH сессий
Для просмотра записей и их управления есть отдельная команда tuna ssh-session
.
Вывести список
Выполняется командой tuna ssh-session list
:
tuna ssh-session list
INFO[11:14:12] 2024-10-28 11:13:49. 2o3u9YtqncQ5JfCtrj73WjFHDqR (jidckii, active)
Просмотр записи
Выполняется командой tuna ssh-session watch [session]
:
tuna ssh-session watch 2o3u9YtqncQ5JfCtrj73WjFHDqR
tuna:jidckii> ^C
tuna:jidckii> exit
Удалить все записи
tuna ssh-session clear
Поведение
SFTP
SFTP поддерживается, ничего дополнительно настраивать не нужно.