Перейти к основному содержимому

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

По умолчанию принимается любой логин, а пароль генерируется автоматически и выводится в консоли.

warning

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

Статичный пароль

Логин и пароль можно определить статически, с помощью флага --auth или переменной окружения TUNA_SSH_AUTH:

tuna ssh --auth="*:pass"

Где * означает, что проверка имени производиться не будет, для ограничения по имени пользователя следует использовать следующий формат:

tuna ssh --auth="user:pass"

Аутентификация по ssh ключу

Для аутентификации по ключам, необходимо предварительно добавить публичный ключ в разделе SSH ключи в личном кабинете. А также на этой же странице, в настройках, включить - Разрешить подключения с помощью своих SSH ключей. В случае команды у вас может быть какой то общий ключ, и вы можете - Разрешить подключения участникам команды

  1. На странице SSH ключей - добавить публичный ключ.
  2. Разрешить подключения в 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 поддерживается, ничего дополнительно настраивать не нужно.