Онбординг джунов и техподдержка, без SSH-сервера и настройки прав на macOS, Linux, FreeBSD — c Tuna SSH

Привет, недавно я рассказывал о нашем аналоге Ngrok, но сегодня я хочу остановиться поподробнее на кейсах применения такой фичи как Tuna SSH, которой нет даже в Ngrok.

Запуск ssh сервера с туннелем наружу
Запуск ssh сервера с туннелем наружу

Запущенный таким образом туннель позволяет предоставить удаленный доступ по SSH без необходимости запускать SSH сервер, создания пользователя, настройки прав, выдачи sudo и так далее.

Если бы мы говорили про Windows, то там есть teamviewer и anydesk, но в unix мире, особенно в linux, проще получить консоль с bash.

Помощь коллегам, онбординг джунов

Сегодня работая в распределённых командах, новичку порой очень сложно понять как запустить проект локально, да у вас может быть всё оформлено через docker-compose и написано хорошее README в корне проекта, но новички на то и новички, опыта нехватает и человек не может понять, как ему всё это запустить начать разрабатывать по ответам из stackoverflow и chatgpt 🙂.

И тут вы как хороший тимлид приходите на помощь вашему новому коллеге, просите установить на его мак клиент tuna

​brew install yuccastream/tap/tuna

запустить клиента и сказать вам реквизиты для подключения

tuna ssh --token=<ваш_токен>​

И вот уже через несколько секунд вы можете подключиться к его компьютеру, создать .env файл и прописать туда недостающие значения, помочь в устранении проблем с Dоcker/NVM/Composer и так далее ...

Тех. поддержка клиентов

Второй кейс, это доступ к серверам клиентов в локальной сети. Предположим вы продаёте софт, он под Linux, а клиенты запускают его у себя в офисе в локальной сети. Иногда что-то не так, и вам для отладки нужно получить доступ к этому серверу. Хорошо если на месте есть сис. админ который может настроить сети и прокинуть доступ, но это и дольше и требует приложения услий, а потом ещё надо не забыть всё обратно закрыть.

И вот вы просите админа запустить на его Ubuntu Server вот такую команду:

bash <(curl -sSL https://get.tuna.am) && tuna ssh --token=<ваш_токен>

также как в примере с джуном просите отправить реквизиты и подключаетесь:

Зашли вы на сервер, увидели, что на диске нет места, удалали логи, подняли postgres и ваше приложение, проверили, что ваш сервис работает и отписались о решении проблемы. Клиент доволен, на всё потрачено 5 минут.

Просмотр историй вводимых команд в ssh сессиях

В какой то момент у джуна или вашего клиента может возникнуть вопрос, а что за магическую команду из for, grep, sed, awk, вы вводили и как бы снова всё решить без вас.

По умолчанию все подключения и история вводимых команд записываются, но это можно отключить.

​tuna ssh-session list INFO[16:34:13] 2024-07-10 12:30:39. 2j3EcT3fxRinNMEj6WJNypj2Eqg (jidckii, active) INFO[16:34:13] 2024-07-10 12:37:14. 2j3FQCvX3ywE7sTbfp46xYkusPC (jidckii, active) INFO[16:34:13] 2024-07-15 15:52:34. 2jHknEvNAjBKqZbPMfQWoL3gdRM (jidckii, active) INFO[16:34:13] 2024-07-15 15:58:52. 2jHlYkFVjZgxah0bvEZ424Tjk61 (jidckii, active)

видим все последние сессии и можем посмотреть историю вводимых команд нужной:

просмотр вводимых коман в ssh сессии tuna

Из ограничений не будет отображаться то, что вводилось в псевдографических редакторах, типа vim или nano, но мы работаем над этим 🙌

Команды ниндзя 🥷

Можно чуть улучшить примеры выше, для начала зарезервируйте статичный TCP порт, что бы вы всегда знали по какому порту подключаться и не спрашивать об этом коллегу/клиента.

Регистрация статичного TCP порта
Регистрация статичного TCP порта

Затем попросите запустить примерно такую конструкцию:

bash <(curl -sSL https://get.tuna.am) && tuna ssh --port=support --auth='team:lead' --token=<ваш_токен>​

Далее вам даже спрашивать ничего не надо, get скрипт сам установит клиента tuna на хост не важно macOS/Linux/FreeBSD, главное что бы curl был изначально, а в аргументах передаётся какой будет логин/пароль и зарезервированный статичный порт. Когда коллега/клиент запустит туннель, вы увидете, что он активен на вкладке с туннелями:

Список туннелей
Список туннелей

Всё, можете подключаться:

​ssh -p 34985 team@ru.tuna.am team@ru.tuna.am's password: lead

На этом у меня всё, спасибо что дочитали до конца 🙂

Контакты

Подробнее можете посмотреть всё на сайте https://tuna.am, надеюсь вам понравится работать с tuna.

Если возникли вопросы, можете задать их нам по почте info@tuna.am, тут в коментариях или нашем чате в telegram.

55
Начать дискуссию