Руководство пользователя

Удаленная разработка и управление

В этом руководстве рассматриваются два аспекта: открытие вашего локального 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 → запуск его в качестве постоянного процесса → настройка локального перенаправления портов → открытие удаленного окна и автоматический вход.

Подключение к удаленному серверу · режим SSH

Введите user@host[:port] и нажмите Подключиться. Важные детали:

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

Проверка отпечатка при первом подключении

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

SSHЗапрос на ввод пароля

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

Недавние хосты. Здесь перечислены хосты, к которым вы подключались; нажатие на один из них лишь заполняет поле ввода (без автоподключения) — проверьте информацию, затем нажмите «Подключиться». Иконка с замком означает сохраненный пароль; значок × означает, что хост (и его сохраненный пароль) забыты.

Прогресс подключения. При первом подключении передается бинарный файл сервера (десятки МБ) — кнопка отображает состояние «Подготовка»/«Передача» с процентом. При повторном подключении используется уже находящийся на удаленном сервере сервер, что значительно ускоряет процесс.

3.2 Режим URL: на другой стороне уже включен удаленный доступ

Используется тогда, когда на VelaTerm другого компьютера уже запущен удаленный доступ (§2) и у вас есть ссылка на сопряжение. По сравнению с открытием ссылки в обычном браузере здесь открывается специальное окно, поддерживается автологин с использованием ключевой цепи, а проверка отпечатка пальца выполняется приложением.

Подключиться к удаленному хосту · Режим URL

Вставьте ссылку на сопряжение, введите пароль доступа, установленный на другой стороне, затем нажмите «Подключиться». При первом подключении проверяется отпечаток сертификата 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 выберите опцию «Продолжать работу при закрытии окна»; сессия будет продолжаться на удаленном устройстве. Пересоединитесь позже и возобновите работу с того же места.

Терминал кажется слишком маленьким на телефоне? Это масштабируемое отражение, соответствующее размерам рабочего стола — нажмите «Кликните, чтобы подогнать окно» в верхнем правом углу терминала, чтобы взять под контроль размеры на текущем устройстве.