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

Доступ по коду согласия

Обычная («управляемая») машина принадлежит организации, и её операторы имеют к ней постоянный доступ. Но бывает, что агент стоит на чужой машине — у клиента, у коллеги, на домашнем ПК — и постоянного доступа быть не должно. Для этого есть режим доступа «Только по коду» и команда nythronix-agent share.

Модель напоминает TeamViewer или AnyDesk: владелец в нужный момент генерирует одноразовый код, сообщает его оператору, тот вводит код в кабинете и получает ровно то, что разрешил владелец. Без кода доступ невозможен — даже для операторов организации, к которой относится агент.

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

В «Админ → Агенты» колонка Доступ имеет два значения:

  • Управляемый — по умолчанию; операторы организации подключаются в любой момент.
  • Только по коду — панель отклоняет любую попытку открыть или присоединиться к сессии, если нет действующего кода, привязанного именно к этой сессии и именно к этому оператору. Сессии на такой машине рождаются только через ввод кода.

Режим выбирается администратором при регистрации машины или позже в той же таблице.

Владелец — тот, кто может выполнять команды на машине. На Linux команда читает учётные данные агента из /etc/nythronix/agent.json, поэтому запускается от root; на Windows — из командной строки администратора:

Окно терминала
sudo nythronix-agent share
Access code: 4f2a-9c11-be07
new shell · read-write · expires in 3600s · single-use
Give this code to the operator; they enter it in the dashboard.
(grant 6b0e…)

Запуск команды и есть согласие — никаких дополнительных окон подтверждения на машине нет. Флаги:

Флаг Что даёт
без флагов новая оболочка на машине, оператор может печатать
--session <id> доступ к уже существующей сессии вместо новой
--view-only оператор только смотрит, ввод игнорируется
--ttl <секунд> срок действия кода (по умолчанию 3600 — один час)

Каждый код одноразовый. Агент отправляет панели только SHA-256-хеш кода: сервер управления не знает сам код и не может им воспользоваться.

На дашборде кабинета есть поле «Код доступа» и кнопка «Подключиться». Введите код в том виде, как его напечатал владелец. Панель:

  1. находит действующий код по хешу (не истёк, не отозван, не использован);
  2. проверяет, что машина online — иначе ответит ошибкой «машина не в сети», и код останется неиспользованным;
  3. запускает новую оболочку или привязывает вас к указанной сессии;
  4. открывает терминал /session/<id>.

Права в терминале определяются кодом: --view-only даёт только просмотр, независимо от вашей роли в кабинете.

Доступ прекращается, когда наступает любое из событий:

  • истёк --ttl;
  • код уже был использован (все коды одноразовые);
  • агент отключился от панели или был перезапущен — при этом все выданные им коды и доступы аннулируются;
  • сессия остановлена (кнопкой «Остановить» в кабинете или выходом из оболочки).

Отдельной команды отзыва на стороне агента пока нет; самый надёжный способ прервать доступ немедленно — перезапустить службу агента (systemctl restart nythronix-agent или nythronix-agent service stop на Windows). Возможности --watch (владелец видит сессию в своём терминале) и --ssh (код на SSH-туннель) описаны в планах, но пока недоступны.

Сессия, открытая по коду, — обычный процесс оболочки на машине от пользователя агента (или назначенного логина). Владелец видит её в ps, а для tmux/zellij — в списке сессий мультиплексора как nyx-<id>. Записи об открытии потока и выдаче кода попадают в аудит панели. Живого зеркала сессии на экране владельца в текущей версии нет.

  • Не публикуйте код в общих чатах; срок в один час по умолчанию можно сократить --ttl 600.
  • Для консультаций без вмешательства используйте --view-only.
  • Для машин клиентов ставьте режим «Только по коду» сразу при регистрации и, при необходимости, ограничьте sudo локальной политикой — см. Установка на Linux.