Для Linux-команды решает не список функций, а совместимость с реальным зоопарком машин. Составьте матрицу — дистрибутив, версия, окружение, тип сессии, права — и проверяйте решение по её строкам, а не по презентации поставщика.
Соберите матрицу проверки
По строке на каждую заметно отличающуюся конфигурацию. Не по машине — иначе получите таблицу на двести строк, из которых сто девяносто одинаковые.
- Дистрибутив и версия — из cat /etc/os-release.
- Окружение рабочего стола и его версия: GNOME, KDE, Cinnamon, XFCE.
- Тип графической сессии: x11 или wayland, из echo $XDG_SESSION_TYPE.
- Есть ли графика вообще: на серверах её может не быть, и им нужен другой инструмент.
- Права: у кого есть sudo и кто ставит пакеты.
- Сеть: локальная, домашняя, мобильная. От неё зависит, установится ли прямое соединение.
Отметьте в матрице две-три самые непохожие строки — на них и делайте пилот. Проверка на трёх одинаковых Ubuntu не говорит ничего о вашей единственной машине на KDE.
Что проверять на пилоте?
- Установка пакета без ручного разрешения зависимостей.
- Появляется ли рабочий стол, а не пустой экран, и работает ли ввод.
- Поведение после блокировки экрана и после перезагрузки.
- Подключение из внешней сети, а не только из локальной.
- Реальная рабочая задача, а не просто факт соединения.
Оцените процесс, а не только продукт
Для команды важнее разовой скорости то, как решение живёт год. Есть ли журнал подключений — кто, когда и к какой машине. Можно ли разграничить права между инженерами. Что происходит при обновлении дистрибутива: у вас есть способ узнать о смене типа сессии до того, как это заметит пользователь. Открытость кода для Linux-команды часто оказывается решающей: заявления о шифровании проверяются по исходникам, а клиент при необходимости собирается самостоятельно. Что ещё стоит проверить по безопасности, перечислено на странице безопасности.
И заранее решите, что делать с машинами, которые в матрицу не уложились: оставить им X11, обслуживать по SSH или вынести в отдельный процесс. Общие критерии выбора, не зависящие от системы, собраны в чек-листе из тридцати вопросов.
Что делать, если у команды разные дистрибутивы?
Проверять на пилоте каждый, а не самый популярный. Различия между дистрибутивами проявляются именно в захвате экрана, автозапуске служб и раскладке клавиатуры — то есть ровно в том, что важно для удалённого доступа.
Как учесть, что часть разработчиков работает без графического окружения?
Не пытаться распространить на них удалённый рабочий стол. Для машин без графики инструмент другой, и это нормально: смешивать сценарии ради единообразия — значит выбрать неудобное решение для обеих групп.