Полная история удалённого доступа

Удалённый доступ к компьютерам когда-то был уделом администраторов, чтобы физически не заходить в серверную. В связи с Covid он всё больше используется "простыми смертными пользователями", чтобы меньше ездить, находить информацию на рабочем компьютере из дома. Лично мой сценарий использования – поддержка пользователей с минимальными усилиями с их стороны.

Итак, рассмотрим несколько способов удалённого доступа, все из которых являются рабочими и имеют свою сферу применения:

  • SSH – для медленных каналов связи, рабочих станций для специализированных задач (из командной строки) и без графического интерфейса
  • TeamViewer лучше всего подходит для удалённой поддержки пользователей, в том числе тех, у которых ты ни разу не был
  • Google Remote Desktop, который я для себя открыл совсем недавно, работает как в режиме удалённой поддержки, так и постоянного удалённого подключения, с графическим интерфейсом и бесплатно

Помимо этого есть другие решения: VNC, платные сервисы, RDP. У меня машины на разных операционных системах, поэтому не всё подошло. Но сначала вспомним, с чего всё начиналось, SSH.

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

SSH

Текстовая командная строка, какое убожество, скажут многие. Те, кто не знает о том, что есть ряд задач, которые делать в командной строке гораздо удобнее. Например, запускать скрипты, которые выполняют ресурсоёмкие задачи. Лично я пользуюсь для архивирования, перемещения и удаления файлов на хостинге, на котором работает этот сайт. Хост может работать только под Linux / unix-like. Для клиента под windows есть практически стандартная уже putty, а для других клиентов и ставить ничего не нужно.

У этого решения есть масса приятных нюансов:

  • Скорее всего, стандартно в удалённом доступе будет bash, а это удобное авто-дополнение команд и имён файлов, работа с историей команд и скрипты.
  • Можно сделать ключ, и тогда пароль не нужен. Нужно один раз за сессию разблокировать связку ключей на клиенте.
  • Можно создать конфигурационный файл с полным именем хоста и подключаться к нему по сокращённому имени.
  • Можно использовать screen, который позволяет делать две вещи: не обрывать сессию при разрыве связи и делать много сессий внутри одной (работать в многозадачном режиме).
  • Предполагается, что вы вводите символ на клиенте, хост подтверждает ввод символа, после чего символ отображается на клиенте; это долго, и для этого придумали mosh; он существенно ускоряет ввод символов на клиенте.
  • В bash сидеть вовсе не обязательно, есть масса программ (правда, на хостинге выбирать не приходится), от файловых менеджеров до почты, браузеров, редакторов и мессенджеров.
  • У сервера есть фиксированное имя и IP-адрес, а для домашних компьютеров, которые сидят за домашним роутером, есть сервисы Dynamic DNS; с помощью него вне зависимости от IP-адреса компьютера вы всегда работаете с одним именем; последний раз было что-то около $20 за 20 хостов в год.
  • Наконец, ssh можно стартовать автоматом при загрузке компьютера, он практически не ест ресурсов и со всех сторон безопасен (особенно при использовании ключа).
  • Если этого недостаточно, можно пускать обычный X session (графические приложения) через SSH. Но это только сценарий linux-linux и на хорошем соединении.

Такой уникальный набор качеств (особенно соотношение ценности на затраты) привёл к тому, что SSH живее всех живых в наш век графических интерфейсов. По крайней мере, можно обновить всю систему и отредактировать файлы конфигурации. Если что-то настраивается через графический интерфейс, тогда либо пробрасывать X server, либо увы.

Скорее всего, стандартный домашний роутер не пропустит входящее SSH-соединение, поэтому нужно открыть нужный порт на роутере. Ну и вся схема может рухнуть, если кто-то сбросит настройки на роутере.

Но также прогресс привёл к тому, что всё больше пользователей стали работать за компьютерами (а не только старшие научные сотрудники), у них стали возникать проблемы.

TeamViewer

TeamViewer является одним из решений. Он бесплатен, популярен и сценарий его использования предельно прост: скачать, запустить, сказать код сотруднику поддержки (кто подключается), и вот он работает. Dynamic DNS не нужен. Сейчас он является кросс-платформенным, то есть можно с Linux поддерживать людей с Windows, наоборот и в любых комбинациях.

В целом сейчас любой инструмент видео-связи даёт возможность показать экран, и часто этого бывает достаточно (не надо скачивать, запускать и диктовать код).

Также я должен сказать про VNC и RDP. Клиент RDP встроен в Windows, поэтому вариант Windows-Windows работает прекрасно (Dynamic DNS нужен), также отлично работает хост Windows, клиент Linux. Лично работал так продолжительное время, очень удобно. А вот с вариантом "хост Linux" ждал облом, поскольку имеющийся сервер не работает с переключением на русский язык. Это прямо боль, но никто не поправил на текущий момент.

VNC, по сути, примерно то же самое, работает в любых вариантах, но требует установить VNC-клиент на клиент и VNC-сервер на хост.

Google Remote Desktop

Видимо, какие-то люди задумались о том, что дальше так продолжаться не может, и сделали нормальное бесплатное решение. Из недостатков только некритичные баги, которые вполне решаются поиском инструкций, а также то, что хост под Linux есть только под Ubuntu.

Зато в плюсе:

  • На клиент ничего ставить не нужно, достаточно открыть Chrome, который и так уже есть. Можно поставить расширение для Chrome, чтобы всё работало ещё лучше. И вот, открываем Chrome под своим профилем и видим список (с названиями, заданными вами) подключённых к профилю машин со статусом (онлайн / офлайн).
  • Кросплатформенность в любых сочетаниях: клиент и хост на любой платформе.
  • Бесплатно; просто посмотрите цены на аналогичные сервисы и поймёте, сколько вы экономите.
  • Работает как в режиме поддержки (сказать код), так и в режиме удалённой работы (подключиться к рабочему компу из дома и работать).

Чем мне понравилось это решение в режиме подключения для удалённой поддержки: пользователю нужно просто включить компьютер, всё. Ничего не надо скачивать, запускать, если компьютер настроен. Если он не настроен, можно подключиться в режиме поддержки и настроить (помучиться один раз).

@Константин Овчинников
Теги: #продуктивность #linux #ковид

Комментарии