Удаленная разработка и управление
В этом руководстве рассматриваются два аспекта: открытие вашего локального VelaTerm для других устройств и подключение к удаленным машинам для разработки и управления сессиями там.
1. Два точка входа, два направления
Оба функции удаленного доступа находятся справа на панели заголовка (рядом с переключателем темы):

Иконка глобуса — это Удаленный доступ (браузер) — она позволяет открыть эту машину, чтобы телефон, планшет или другой компьютер мог использовать ваш VelaTerm через браузер. Иконка стрелки — это Подключиться к удаленному серверу — в этом случае машина действует в качестве клиента и подключается для работы на другой машине. Когда сервер запущен, глобус светится зеленым цветом.
| Чего вы хотите | Какой способ входа |
|---|---|
| Просмотр и управление сессиями этой машины с телефона/планшета/другого компьютера | Кнопка глобуса (Удаленный доступ) |
| Работа с удаленной Linux / macOS разработочной коробкой, в которой ничего не установлено заранее | Кнопка Подключиться → режим SSH |
| Подключение к другому VelaTerm, у которого уже включен удаленный доступ | Кнопка Подключиться → режим URL |
2. Открытие этой машины (Удаленный доступ)
2.1 Запуск сервера
Нажмите на глобус, укажите порт (по умолчанию 8799 — измените его, если он занят), а также пароль доступа, затем нажмите Запустить сервер:

Для входа любому устройству требуется пароль доступа. Он действителен только во время работы сервера; после его остановки укажите новый пароль в следующий раз.
2.2 Подключение устройства
После запуска на панели отображаются статус, отпечаток сертификата и автоматически сгенерированная ссылка на сопряжение:

Чтобы подключиться: отправьте ссылку на сопряжение на свое собственное устройство (через AirDrop, сообщение себе — любым удобным способом), откройте ее в браузере и введите пароль доступа. Ссылка содержит зашифрованные учетные данные для сопряжения; трафик между браузером и устройством зашифрован от начала до конца. Следует знать две вещи:
- Эта ссылка является ключом. Делитесь ею только со своими собственными устройствами. Если вы подозреваете утечку, нажмите Перегенерировать ссылку — старая ссылка немедленно становится недействительной, и все подключенные устройства отключаются, пока они не используют новую ссылку.
- При первом подключении браузер покажет предупреждение о ненадежном сертификате — это нормально для самоподписанного сертификата. Сравните отпечаток, показанный браузером, с отпечатком сертификата на панели; если они совпадают, вы общаетесь со своим собственным устройством.
При наличии нескольких сетевых интерфейсов (сетевой кабель, Wi-Fi, VPN) на панели отображается предпочтительный адрес, а остальные адреса скрыты под пунктом «Еще 1 URL» — выберите тот, который находится в той же сети, что и устройство, подключающееся.
Открытие той же ссылки на телефоне автоматически переключает интерфейс в мобильный режим (двухуровневая навигация плюс панель клавиш терминала) — никакой настройки не требуется.
2.3 Как выглядит интерфейс браузера
Страница входа и основной интерфейс, которые видит подключенное устройство:


Клиент браузера делит те же активные сессии, что и десктопная версия: та же структура, тот же вывод терминала, обе стороны могут вводить текст, и каждая сторона видит действия другой в реальном времени. Расположение окон (открытые вкладки, разделение) определяется отдельно для каждого клиента и независимо от него.
У размера терминала есть концепция «владельца»: когда одна сессия открыта на нескольких клиентах, размер следует за владельцем, а остальные клиенты видят масштабированную копию с полем «Зеркало … нажмите, чтобы подстроить окно» (в верхнем правом углу терминала на скриншоте выше) — нажмите на него, чтобы взять под контроль размер текущего окна.
2.4 Управление устройствами
В списке Сопряженные устройства на панели отображаются все подключенные устройства:

Чтобы заблокировать устройство, нажмите Разблокировать рядом с ним и подтвердите — оно немедленно отключается и не может снова подключиться (для этого потребуется новая ссылка на сопряжение); остальные устройства не затронуты. Названия устройств указываются самими клиентами — рассматривайте их как метки, а не как идентификаторы. Чтобы отключить всех сразу, используйте Перегенерировать ссылку.
2.5 Остановка сервера
Нажмите Остановить сервер в нижней части панели. Клиенты браузера отключаются; активные сессии не затрагиваются — они принадлежат самому десктопному приложению.
3. Подключение к удаленному серверу (Подключиться к удаленному серверу)
Нажмите кнопку подключения на панели заголовка; на панели представлены режимы SSH и URL.
3.1 Режим SSH: для удаленного подключения требуется только SSH
Для удаленной разработочной коробки (обычно Linux или macOS), в которой не установлены компоненты VelaTerm. Подключение автоматически выполняет весь процесс: проверка ОС и архитектуры удаленного устройства → передача соответствующего vela-server → запуск его в качестве постоянного процесса → настройка локального перенаправления портов → открытие удаленного окна и автоматический вход.

Введите user@host[:port] и нажмите Подключиться. Важные детали:
Проверка ключа хоста при первом подключении. Новый хост показывает отпечаток своего SSH ключа хоста для проверки; подтвердите, выбрав «Отпечаток совпадает, подключиться», и он будет добавлен в файл known_hosts — дальнейшие запросы к этому хосту не появятся. Если отпечаток уже известного хоста когда-либо изменится, панель станет красной — выясните причину (переустановка ОС, другое устройство или вмешательство в ссылку) перед подтверждением.

Аутентификация. Ваша существующая SSH настройка (ssh-agent, ~/.ssh/config, ключи) используется автоматически; запрос на ввод пароля появляется только при неудачной аутентификации с использованием публичного ключа. Опция «Запомнить пароль» сохраняет его в системном ключевом хранилище (никогда не в базе данных) и использует его в следующий раз.

Режим данных: «Использовать базу данных приложения удаленного рабочего стола». Если галочка не поставлена (по умолчанию), удаленный сервер использует изолированный каталог данных (~/.velaterm/data), полностью отдельный от любого VelaTerm приложения рабочего стола, установленного на этом компьютере. Если галочка поставлена, используется база данных версии для удаленного рабочего стола — обе стороны видят одну и ту же иерархию сессий, что подходит в ситуациях, когда «на том компьютере ежедневно работает VelaTerm», а вы берете под контроль те же проекты удаленно». Обмениваются файлом базы данных на диске, а не запущенными процессами (см. §4.1); рекомендуется держать обе стороны на одной и той же версии.
Недавние хосты. Здесь перечислены хосты, к которым вы подключались; нажатие на один из них лишь заполняет поле ввода (без автоподключения) — проверьте информацию, затем нажмите «Подключиться». Иконка с замком означает сохраненный пароль; значок × означает, что хост (и его сохраненный пароль) забыты.
Прогресс подключения. При первом подключении передается бинарный файл сервера (десятки МБ) — кнопка отображает состояние «Подготовка»/«Передача» с процентом. При повторном подключении используется уже находящийся на удаленном сервере сервер, что значительно ускоряет процесс.
3.2 Режим URL: на другой стороне уже включен удаленный доступ
Используется тогда, когда на VelaTerm другого компьютера уже запущен удаленный доступ (§2) и у вас есть ссылка на сопряжение. По сравнению с открытием ссылки в обычном браузере здесь открывается специальное окно, поддерживается автологин с использованием ключевой цепи, а проверка отпечатка пальца выполняется приложением.

Вставьте ссылку на сопряжение, введите пароль доступа, установленный на другой стороне, затем нажмите «Подключиться». При первом подключении проверяется отпечаток сертификата TLS (сравнивается с отпечатком, отображаемым на панели другой стороны); после этого при неизменных отпечатках подключение происходит напрямую. Функция «Запомнить пароль» работает аналогичным образом, через системную ключевую цепь.
4. Разъединение, закрытие и что сохраняется
4.1 Три уровня состояния
Вопрос о том, «остаются ли данные после разъединения», зависит от того, о каком уровне идет речь:
| Уровень состояния | Где он хранится | Когда он теряется |
|---|---|---|
| Разметка окна (открытые вкладки, разделение экрана) | Внутри вашего окна | Практически никогда — при повторном открытии все восстанавливается |
| Иерархия сессий (определения проектов/групп/сессий) | База данных на диске удаленного сервера | Никогда — сохраняется при перезагрузке компьютера |
| Запущенные сессии (живые терминалы, агенты, выполняющие задачи) | Память процесса удаленного сервера | Исчезает при завершении работы этого процесса |
Первые два уровня по своей конструкции безопасны. Единственный уровень, о котором стоит беспокоиться, — третий: пока жив процесс удаленного сервера, живы и ваши запущенные сессии.
4.2 Что означает закрытие окна
Режим SSH: удаленный сервер был запущен через это подключение и принадлежит вам, поэтому при закрытии окна появляется вопрос о действии — «Остановить сервер» прекращает его работу на удаленной стороне (завершая запущенные сессии); «Продолжить работу» лишь разрывает соединение с вашей стороны, оставляя сервер включенным, чтобы следующее подключение к этому компьютеру могло использовать его с сохраненными сессиями. Хотите, чтобы агенты продолжали работать в ваше отсутствие? Выберите «Продолжить работу».
Режим URL: вы были гостем уже работающей там программы. Закрытие вашего окна означает лишь ваш уход; другая сторона продолжает работу, и все остается на месте при вашем возвращении.
4.3 Потеря соединения и повторное подключение
При сбоях в сети в верхней части окна удаленного сервера появляется красная полоса повторного подключения, и происходит автоматическая попытка подключения; запущенные сессии не затрагиваются — в режиме SSH удаленный сервер отделен от SSH сессии (он по замыслу выдерживает потерю соединения).
Стоит знать один важный момент: автоматическое повторное подключение касается только участка от окна до локального порта пересылки. Если процесс туннеля SSH или сам удаленный сервер завершил работу, красная полоса будет вращаться бесконечно, и функция «Повторно подключиться» не поможет — возвращайтесь в главное окно и подключайтесь заново. Процесс подключения проверяет, жив ли удаленный сервер: если да, он используется снова (сессии остаются нетронутыми); только если сервер мертв, запускается новый.
Также: если удаленный компьютер входит в режим сна, выходит из системы или перезагружается, это приводит к завершению работы сервера в режиме SSH и его запущенных сессий; иерархия сессий, хранящаяся на диске, не затрагивается.
4.4 Краткий справочник
| Проблема | SSH Режим | Режим URL |
|---|---|---|
| Кто владеет удаленным сервером | Это подключение — вы его запустили, вы им управляете | Долго работающая программа на другой стороне |
| По умолчанию поведение при закрытии | Диалоговое окно: «Остановить сервер» / «Продолжить работу» | Вы уходите; другая сторона продолжает работу |
| Разметка окна | Сохраняется в каждом окне, восстанавливается при повторном открытии | То же самое |
| Иерархия сессий | Изолированная база данных; или общая с приложением удаленного рабочего стола, если вы согласились на это | Собственная база данных другой программы |
| Запущенные сессии | Сохраняются, пока жив сервер | По своей природе работают долго; выдерживают повторные подключения |
5. Краткий обзор модели безопасности
Пароли (SSH пароли учетной записи, пароли входа на удаленный сервер) хранятся только в системной ключевой цепи, никогда не в базе данных, и только при вашем явном согласии. Доступ через локальный браузер осуществляется по протоколу TLS с самоподписанным сертификатом; ссылки на сопряжение содержат данные для шифрования на уровне конца-конца, а сервер отклоняет подключения в открытом виде без сопряжения. Ключи хостов SSH и сертификаты TLS удаленного сервера работают по принципу доверия при первом использовании: известные и неизменные цели позволяют подключаться напрямую; новые цели требуют одного запроса на проверку; измененные отпечатки пальцев вызывают красное предупреждение — необходимо провести проверку перед подтверждением. Отдельные устройства могут быть заблокированы в любое время (§2.4), а ссылку на сопряжение можно сгенерировать заново по желанию.
Еще один момент: если в строке заголовка окна удаленного сервера отображается красный значок «⚠ vX ≠ vY», это означает, что интерфейс вашего клиента и удаленный сервер работают на разных версиях — некоторые функции могут не совмещаться; обновите обе стороны до одинаковой версии.
6. Часто задаваемые вопросы
** Подключено, но панель сбоку пуста или красная полоса вращается бесконечно?** Скорее всего, туннель SSH или сам удаленный сервер уничтожены — повторное подключение внутри окна не поможет решить эту проблему (§4.3). Вернитесь в главное окно и подключитесь заново.
Порт 8799 не запускается? Его занял другой процесс; выберите другой порт в панели и попробуйте снова.
Браузер сообщает, что сертификат недостоверен? Это нормально для самоподписанного сертификата — проверьте его отпечаток и продолжайте (§2.2). Чтобы пропустить предупреждения браузера, войдите по ссылке на сопряжение, и приложение само будет заниматься проверкой доверия.
Хотите, чтобы удаленный агент продолжал работать, пока вас нет? В режиме SSH выберите опцию «Продолжать работу при закрытии окна»; сессия будет продолжаться на удаленном устройстве. Пересоединитесь позже и возобновите работу с того же места.
Терминал кажется слишком маленьким на телефоне? Это масштабируемое отражение, соответствующее размерам рабочего стола — нажмите «Кликните, чтобы подогнать окно» в верхнем правом углу терминала, чтобы взять под контроль размеры на текущем устройстве.