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

Для подключения к компьютерам других пользователей можно воспользоваться такими программами, как TeamViewer, AnyDesk, Ammyy и т.п. Но использование проприетарных решений всегда ставит нас в зависимость от вендора, и иногда это вызывает непредвиденные проблемы. Например, пользователи могут столкнуться с внезапным появлением сообщения «Обнаружено коммерческое использование», после которого программа прекращает нормально функционировать в бесплатном режиме. Для предприятия логичным шагом будет покупка лицензии, но если среди наших пользователей только родственники и друзья, то покупка лицензии представляется не всегда лучшим выбором. Существует программное обеспечение, распространяющееся под свободными лицензиями и позволяющее решить нашу задачу без дополнительных затрат. Исторически программы для удаленного администрирования предназначены для работы в локальной сети, и главным ограничением для их использования является отсутствие прямой связи с компьютером пользователя.

Для предлагаемого мной решения обязательным условием является наличие публичного IP-адреса, через который будет подниматься SSH-туннель. Варианты организации SSH-туннелей хорошо описаны в сети, например, можно почитать тут. Условно будем называть администратором человека, оказывающего помощь, а пользователем — человека, к компьютеру которого требуется подключиться. Рассматривать будем вариант, когда администратор имеет публичный IP-адрес. Для однократных подключений этот вариант выглядит наиболее удобным, потому что не требует постоянно включенного ПО ни на сервере, ни на клиенте.

Предположим, что администратор работает на компьютере PC1, а подключиться требуется к пользовательскому компьютеру PC2. Оба компьютера под управлением ОС Windows.

IP-адреса указаны для примера, и в скриптах их надо заменять на свои. В случае использования внешнего SSH-сервера (например, VPS/VDS, которые сейчас зачастую можно найти дешевле стоимости публичного IP у некоторых провайдеров) изменения потребуются в организации SSH-туннеля, что не должно представлять особой сложности и в статье не описывается.

Суть предлагаемой схемы работы:

  1. На публичном IP открывается порт для входящих соединений и пробрасывается на администраторский компьютер PC1, на котором на этом порте запускается SSH-сервер.

  2. На пользовательском компьютере PC2 запускается SSH-клиент, который подключается к SSH-серверу PC1 и пробрасывает на него локальный порт.

  3. На PC2 запускается VNC-сервер, ожидающий соединения на локальном порте PC2.

  4. На PC1 запускается VNC-клиент, который подключается к локальному порту PC1, проброшенному по SSH с PC2.

То есть компьютер PC1 будет выступать одновременно в роли SSH-сервера и VNC-клиента, а пользовательский компьютер PC2 — SSH-клиента и VNC-сервера.

Требования к функциональности:

  1. Удаленный доступ должен работать только тогда, когда это ожидается администратором и пользователем.

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

  3. Пользователь не должен испытывать существенных затруднений при развертывании ПО на своей стороне.

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

Для реализации будем использовать:

  1. SSH (сервер и клиент), например этот.

  2. VNC (сервер и клиент), например этот.

TightVNC я выбрал из-за наличия актуальной сборки VNC-сервера под Windows под лицензией GNU GPL, и возможности передавать файлы между сервером и клиентом. Из дистрибутивов потребуются файлы: libcrypto.dll, ssh.exe, ssh-keygen.exe, sshd.exe, tvnserver.exe и tvnviewer.exe. Решение проверялось на Windows 7 и Windows 10 (разных версий), но должно работать на любых ОС, где можно запустить SSH и VNC.

В Windows 10 SSH-клиент предустановлен (как минимум, начиная с версии 1809) по пути "%SystemRoot%\System32\OpenSSH\ssh.exe", но для универсальности SSH-клиент включен в архив.

Для каждого пользователя будет создаваться отдельный независимый дистрибутив. Все действия выполняются запуском bat-файлов.

Администраторская часть дистрибутива

Для начала рассмотрим состав файлов на стороне администратора PC1 (SSH-сервер и VNC-клиент):

  • authorized_keys — содержит открытый ключ SSH-клиента, необходим для подключения клиента к нашему серверу;

  • ssh_host_rsa_key — закрытый ключ SSH-сервера;

  • sshd_config — минимально необходимый конфиг SSH-сервера;

  • run_sshd.bat — скрипт запуска SSH-сервера;

  • ssh_host_rsa_key.pub — открытый ключ SSH-сервера (вообще говоря, для запуска сервера не нужен, используется на клиенте);

  • libcrypto.dll, sshd.exe и tvnviewer.exe — ранее распакованные бинарники.

Запуск сервера осуществляется запуском файла run_sshd.bat.

set ssh_bin=%~dp0
"%ssh_bin%sshd.exe" -f "%~dp0sshd_config" -h "%~dp0ssh_host_rsa_key" -E "%~dp0sshd.log"

Используемые параметры:

  • %~dp0путь к каталогу запускаемого скрипта;

  • -f config_file — путь к файлу конфигурации;

  • -h host_key_file — путь к закрытому ключу сервера;

  • -E log_file — путь к log-файлу (опционально).

Бинарники не обязательно держать в том же каталоге, можно разместить их в общем каталоге для всех клиентов и указать путь через переменную ssh_bin.

У используемого sshd версии 8.1.0.0p1-Beta есть особенности: для запуска обязательно надо указывать полный путь к sshd.exe, а authorized_keys должен находиться по пути "%USERPROFILE%.ssh\authorized_keys". То есть перед запуском сервера открытый ключ клиента обязательно должен быть добавлен в "%USERPROFILE%.ssh\authorized_keys". Либо при запуске sshd можно использовать опцию -o AuthorizedKeysFile=<...>.

Содержимое sshd_config:

PubkeyAuthentication yes
PasswordAuthentication no
SyslogFacility LOCAL0
Port 11111

Описание опций:

  • PubkeyAuthenticationразрешает аутентификацию на основе открытого ключа;

  • PasswordAuthentication — запрещает аутентификацию с использованием пароля;

  • SyslogFacility — категория журналирования для сохранения лога в файл;

  • Port — номер порта, который слушает сервер.

Если в логах sshd.log возникает ошибка "WARNING: UNPROTECTED PRIVATE KEY FILE!", то надо поправить права на файле:

icacls.exe "ssh_host_rsa_key" /remove "%COMPUTERNAME%\%USERNAME%"
icacls.exe "ssh_host_rsa_key" /inheritance:r
icacls.exe "ssh_host_rsa_key" /grant "%COMPUTERNAME%\%USERNAME%:(R)"

В некоторых случаях (если sshd видит проблему с правами на файле с ключами) на SSH-клиенте возникает ошибка: "Permission denied (publickey,keyboard-interactive)". При этом в логах SSH-сервера при включенной отладке (опция -d) можно увидеть: "Bad permissions. Try removing permissions for user: ..." В этом случае надо поправить права на файле authorized_keys, изменить их можно тем же способом, что и для файла ssh_host_rsa_key выше.

Пользовательская часть дистрибутива

На стороне пользователя PC2 (SSH-клиент и VNC-сервер) нам потребуются следующие файлы:

  • id_rsa — закрытый ключ клиента;

  • id_rsa.pub — открытый ключ клиента (для запуска на клиенте не требуется - используется на сервере);

  • known_hosts — содержит публичный IP-адрес SSH-сервера и его открытый ключ;

  • tightvnc.reg — настройки tightVNC-сервера;

  • prepare.bat — скрипт подготовки (запускается на клиенте однократно);

  • run.bat — скрипт запуска SSH-клиента и VNC-сервера;

  • libcrypto.dll, ssh.exe, tvnserver.exe — ранее распакованные бинарники.

Перед запуском на стороне пользователя необходимо произвести настройки, которые объединены в файле prepare.bat. Этот скрипт выполняется однократно при первичной настройке компьютера пользователя и делает следующее:

1. Настраивает права доступа к закрытому ключу (иначе SSH-клиент не запускается).

icacls.exe "%~dp0id_rsa" /remove "%COMPUTERNAME%\%USERNAME%"
icacls.exe "%~dp0id_rsa" /inheritance:r
icacls.exe "%~dp0id_rsa" /grant "%COMPUTERNAME%\%USERNAME%:(R)"

2. Настраивает VNC-сервер. Здесь возможны два варианта. Если прав локального администратора у пользователя нет, то настройки VNC надо импортировать в ветку HKEY_CURRENT_USER и запускать tvnserver.exe от имени пользователя.

reg.exe import tightvnc.reg

Но это ограничит возможности удаленного помощника: нельзя будет управлять приложениями, требующими повышения привилегий. Если пользователь готов дать удаленному помощнику права локального администратора, то настройки надо экспортировать в ветку HKEY_LOCAL_MACHINE и запускать tvnserver.exe как сервис. Для установки tvnserver как сервиса надо запустить (от имени администратора):

regedit /s "%~dp0tightvnc.reg"
"%~dp0tvnserver.exe" -install
sc config tvnserver start= demand

Последняя строка нужна для того, чтобы наш сервис запускался по требованию (только когда это нужно пользователю).

Запуск на стороне пользователя выполняется с помощью файла run.bat. Вариант без прав локального администратора:

start tvnserver.exe
"%~dp0ssh.exe" -fN -n -R 55555:127.0.0.1:33333 username@1.2.3.4 -p 11111 -i "%~dp0id_rsa" -o "UserKnownHostsFile=""%~dp0known_hosts""" -E "%~dp0ssh.log"
tvnserver.exe -controlapp -shutdown

Вариант с правами локального администратора:

"%~dp0tvnserver.exe" -start
"%~dp0ssh.exe" -fN -n -R 55555:127.0.0.1:33333 username@1.2.3.4 -p 11111 -i "%~dp0id_rsa" -o "UserKnownHostsFile=""%~dp0known_hosts""" -E "%~dp0ssh.log"
"%~dp0tvnserver.exe" -stop

В скрипте сначала запускается VNC-сервер, потом устанавливается соединение с SSH-сервером. Консольное окно c SSH-клиентом будет висеть до конца сеанса. По нему, кстати, можно диагностировать проблемы: если окно пропало, значит что-то пошло не так и надо смотреть в ssh.log. Расширенное журналирование можно включить опцией -vvvv.

Важно! Порядок запуска сервера и клиента имеет значение: запускать SSH-клиент имеет смысл только при работающем SSH-сервере.

Параметры запуска SSH-клиента:

  • -fNфоновый режим;

  • -nпредотвращает чтение из stdin (используется в фоновом режиме);

  • -R — определяет реверсный туннель, перенаправляющий трафик с порта 55555 компьютера PC1 на порт 33333 компьютера PC2;

  • username@ip — %USERNAME% пользователя, под которым запущен sshd на PC1, и публичный IP SSH-сервера;

  • -p — публичный порт SSH-сервера (для простоты считаем, что порт прокидывается через NAT без изменения номера);

  • -i — путь к закрытому ключу клиента;

  • -o UserKnownHostsFile — путь к файлу с публичным ключом сервера;

  • -E — путь к log-файлу.

Подготовка tightvnc.reg

Для подготовки конфига TightVNC надо запустить VNC-сервер (например, на виртуальной машине), настроить порт для соединений (в нашем случае 33333) и ограничить доступ к удаленному управлению. Остальные настройки на усмотрение администратора. Предлагаю доступ ограничить следующим образом: разрешить только Loopback Connections — установить флаги "Allow loopback connections" и "Allow only loopback connections". Еще можно настроить правила подключения.

После настроек надо выгрузить ветку из реестра: HKEY_LOCAL_MACHINE\Software\TightVNC\Server (или HKEY_CURRENT_USER\Software\TightVNC\Server, если VNC-сервер запускался без расширенных привилегий). Также для исключения ситуации, когда у пользователя были в реестре неподходящие настройки VNC-сервера, можно добавить в начало reg-файла строки [-HKEY_LOCAL_MACHINE\Software\TightVNC\Server] и/или [-HKEY_CURRENT_USER\Software\TightVNC\Server].

После запуска run_sshd.bat на сервере и run.bat на клиенте администратор может подключиться к компьютеру пользователя командой

tvnviewer.exe 127.0.0.1:55555

Генератор дистрибутива

Для упрощения создания дистрибутива для нового пользователя предлагается сделать простой генератор, который представляет собой обычный bat-файл. Текст максимально простой; единственное, на что можно обратить внимание, это формирование файла known_hosts. В нём перед отрытым ключом должен находиться IP-адрес SSH-сервера. Для этого IP-адрес записывается во временный файл (без перевода строки), а после объединения IP и ключа временный файл удаляется. IP-адрес и номера портов надо указывать свои, для примера использовались следующие:

  • 1.2.3.4 — публичный IP-адрес администратора;

  • 11111 — открытый порт на публичном IP-адресе, который пробрасывается на открытый порт 11111 на PC1 (требуется корректно настроить firewall на всех узлах);

  • 33333 — порт на PC2, на котором VNC-сервер ожидает соединение;

  • 55555 — порт на PC1, к которому подключается VNC-клиент (на PC1).

В качестве имени пользователя username надо указать имя аккаунта администратора, под которым запускается SSH-сервер. Тестировались только варианты с именем латинскими буквами без пробелов. Как поведет себя система, если имя будет кириллицей или содержать пробелы, не проверялось. Также для читабельности убраны разные проверки на ошибки, потому что в bat это выглядит несколько монструозно. Для демонстрации рабочей концепции обработка ошибок не обязательна.

Основной скрипт генерации:

set ssh_srv_ip=1.2.3.4
set ssh_srv_user=%USERNAME%
set ssh_srv_port=11111
set vnc_host_port=33333
set vnc_local_port=55555

mkdir ssh_cli-vnc_srv\
mkdir ssh_srv-vnc_cli\

@rem ключи пользователя
ssh-keygen -t rsa -b 4096 -f ./id_rsa -C "" -q -N ""
copy id_rsa.pub     ssh_srv-vnc_cli\authorized_keys
move id_rsa         ssh_cli-vnc_srv\
move id_rsa.pub     ssh_cli-vnc_srv\
echo @rem "%%~dp0tvnserver.exe" -start>ssh_cli-vnc_srv\run.bat
echo start tvnserver.exe>>ssh_cli-vnc_srv\run.bat
echo "%%~dp0ssh.exe" -fN -n -R %vnc_local_port%:127.0.0.1:%vnc_host_port% %ssh_srv_user%@%ssh_srv_ip% -p %ssh_srv_port% -i "%%~dp0id_rsa" -o "UserKnownHostsFile=""%%~dp0known_hosts""" -E "%%~dp0ssh.log">>ssh_cli-vnc_srv\run.bat
echo tvnserver.exe -controlapp -shutdown>>ssh_cli-vnc_srv\run.bat
echo @rem "%%~dp0tvnserver.exe" -stop>>ssh_cli-vnc_srv\run.bat

@rem ключи администратора
ssh-keygen -t rsa -b 4096 -f ./ssh_host_rsa_key -C "" -q -N ""
<nul set /p dummy=%ssh_srv_ip% >tmp
copy /b tmp+ssh_host_rsa_key.pub  ssh_cli-vnc_srv\known_hosts
del tmp
move ssh_host_rsa_key      ssh_srv-vnc_cli\
move ssh_host_rsa_key.pub  ssh_srv-vnc_cli\

Генератор формирует ключи и bat-файлы, которые отличаются для каждого клиента, остальные файлы можно просто скопировать в нужные каталоги.

copy libcrypto.dll         ssh_cli-vnc_srv\
copy ssh.exe               ssh_cli-vnc_srv\
copy tvnserver.exe         ssh_cli-vnc_srv\
copy tightvnc.reg          ssh_cli-vnc_srv\
copy prepare.bat           ssh_cli-vnc_srv\
copy run_sshd.bat          ssh_srv-vnc_cli\
copy sshd_config           ssh_srv-vnc_cli\
copy libcrypto.dll         ssh_srv-vnc_cli\
copy sshd.exe              ssh_srv-vnc_cli\
copy tvnviewer.exe         ssh_srv-vnc_cli\

Резюме

В качестве итога перечислю всё, что нужно сделать.

Первичная настройка на стороне администратора:

  1. Открыть порт для SSH-сервера, настроить firewall.

  2. Сгенерировать дистрибутив, скорректировать bat при необходимости (например, для работы с повышенными привилегиями в системе пользователя).

  3. Разместить authorized_keys по пути "%USERPROFILE%.ssh\authorized_keys" (добавить в файл строку с новым ключом). Ограничить права доступа к файлам с ключами.

  4. Упаковать пользовательскую часть в архив и передать его пользователю любым доступным способом (например, временно запустив web-сервер на компьютере администратора).

Первичная настройка на стороне пользователя:

  1. Пользователь должен получить архив со своей частью файлов. Если для распаковки используются встроенные средства Windows, то сначала надо убрать у скачанного файла поток Zone.Identifier (в свойствах файла нажать кнопку «разблокировать»).

  2. После распаковки архива пользователю требуется запустить файл prepare.bat. В зависимости от того, что приготовил администратор, может потребоваться запуск с повышенными привилегиями.

Порядок установки соединения:

  1. Администратор запускает run_sshd.bat на PC1 (SSH-сервер).

  2. Пользователь запускает run.bat на PC2 (SSH-клиент и VNC-сервер, в зависимости от настроек может потребоваться подтверждение повышения привилегий).

  3. Администратор запускает VNC-клиент: tvnviewer.exe 127.0.0.1:55555

Если всё настроено корректно, то теперь администратор может управлять компьютером пользователя.

Комментарии (38)


  1. mgis
    04.01.2022 09:58
    +2

    Сам для себя проблему решил переходом на Google Remote Desktop.
    Из преимуществ сервис бесплатный, нет количество ни на время подключения ни на количество компьютеров которые можно испольтзовать для 1 аккаунта, ну и белый айпи тоже не нужен.


    1. fougasse
      04.01.2022 10:13

      А качество/скорость как по сравнению с RDP/TeamViewer/X2GO?


      1. mgis
        04.01.2022 20:26

        Качество/скорость достойное, из минусов нет буфера обмена полноценного. Есть какое то расширение для Chrome которое решает проблему буфера, но у меня с ним как то не очень сложилось.
        Но повторюсь в целом все отлично, я даже написал небольшую заметку про Google Remote Desktop.


  1. qant
    04.01.2022 10:39

    Anydesk очень удобен, перешёл с тимвивера тк тот стал просить купить


    1. aik
      04.01.2022 19:30
      +2

      Anydesk тоже уже намекает на покупку. Не так навязчиво, как tv, но всё впереди.


    1. fouriki
      05.01.2022 10:49

      Я, конечно, понимаю, что докапываюсь)

      Но почему "вивер" то?)) Почему так то?) Он же "вьюер")

      Ладно от бухгалтеров ещё могу понять. Но от айтишников тоже очень часто слышу


    1. theGrove
      05.01.2022 15:03

      AnyDesk с недавнего времени начал проситься купить) Думаю скоро его очень ограничат для бесплатных тарифоф


  1. slavius
    04.01.2022 11:57
    +1

    Litemanager

    http://litemanager.ru/

    LiteManager Pro/Free — программа удаленного управления компьютерами через Интернет или администрирования в локальной сети, для технической поддержки пользователей, дистанционного обучения, контроля рабочего процесса сотрудников.

    Чуть боольше информации

    Программа позволяет: легко и быстро управлять рабочим столом компьютера в режиме реального времени, полностью поддерживая Windows, предоставляет надежный удаленный доступ к файловой системе, процессам и сервисам компьютера. LiteManager обладает встроенными функциями создания сетевой карты, сбора технической информации, возможностью развертывания и обновления с помощью средств удаленной установки, настройка своего личного ID роутера (NOIP) и многое другое.


  1. NAI
    04.01.2022 12:14
    +1

    Зачем все это если в Windows 10 есть "Быстрая помощь"?
    -Белые\публичные IP не требуются (причем не требутся с обоих сторон).
    -Клиенту (нуждающемуся) надо сделать всего 2 действия - запустить быструю помощь и ввести 6-значный код, остальное делает помогающий (более компетентный, администратор).
    -Никаких прав администратора для запуска не требуется.

    В Windows 7\8 был прообраз - удаленный помощник, работал чуть сложнее, но в целом все то же самое.

    Я понимаю, SSH, VPN если у вас вагон приватной информации и кровавый энтерпрайз. Понимаю если у вас там Linux. Но для домашнего Windows, городить все это... Долго и упорно писать скрипт насройки клиента, который 100% на конечной машине заработает не с первого раза, SSH, VNC... да блин, даже банальное VPN+RD - удобнее и из коробки. Вам даже пользователю проще будет объяснять - нажми на ярлык на рабочем столе (подключение к VPN) и... все.


    1. fougasse
      04.01.2022 12:38

      А в Home версии можно разве подключится к другой системе по RDP? Принять подключение - это половина дела, нужно же найти того, кто сможет инициировать сеанс. Далеко не все покупают себе Pro версии Windows.


      1. NAI
        04.01.2022 12:51

        «Быстрая помощь» - присутствует во всех редакциях Windows 10.

        RD, действительно, только в Pro и Ent.


        1. fougasse
          04.01.2022 20:33

          Помогающий с Home версии может помочь?


          1. aik
            04.01.2022 20:58

            Может.


          1. NAI
            04.01.2022 22:00

            Я бы опасался помогающих с хомяка, оно как-то слишком подозрительно - администратор без hyper-v, RSAT (или как оно там по новому), без джамп хоста.

            SSH-клиент зачем-то ставить. Кстати, чем встроенный не подошел?


            1. aik
              04.01.2022 22:06

              Школьник-студент хочет помочь знакомой девочке или бабушке скайп настроить.
              Что, ему уже нужно hyper-v для этого?


              1. NAI
                04.01.2022 23:05

                Если очень хочется и школьник-студент пользуется только легальным софтом (хотя, мне кажется, что "школьник", "студент" и "легальный софт" в одном предложении не совместимы), и даже если он пользуется Linux, то virtualbox\proxmox + Windows 10\11 Enterprise на 90 дней который вполне себе бесплатен и легально качается с сайта MS.

                А теперь серьезно, понятно дело, что мы всегда можем найти граничное условие ("А что если у бабушки то Windows 98, а?!"). Мой опыт, говорит что самые надежные решения - самые простые и минимально влияющие на систему. Ползать по столбам, надо начинать когда эти самые решения не работают (и то надо еще подумать).


                1. aik
                  04.01.2022 23:11

                  Ну вот виндовый удаленный помощник — это вполне легальное решение.
                  А на счёт софта — у большинства сегодня ноуты, а ноуты обычно идут с предустановленной виндой. Нахрена ради помощи друзьям и бабушкам разводить зоопарк с проксмоксами и энтерпрайзами — непонятно.

                  А если бабушка школьника такая умная, что линукс поставила — пусть сама его и админит.


    1. Arki_LKK
      05.01.2022 15:03

      Для использования «Быстрой помощи» нужен логин в аккаунт Майкрософт. У пользователя может такового не быть или использование его может быть нежелательно.


      1. NAI
        05.01.2022 15:17

        Логин требуется только со стороны того кто помогает (администратора), а не со стороны пользователя.

        Прошу примеры "нежелательного", только напоминаю - мы сейчас не про кровавый энтерпраз с СБ и не про нелегальное использование ПО.


        1. Arki_LKK
          05.01.2022 16:42

          Не кровавый энтерпрайз. Но (как известный мне пример) после определённых проблем связанных с утечкой информации наложены жёсткие ограничения на использование внешних аккаунтов и ПО типа мессенджеров etc. И логин в учётку MS недопустим. Как впрочем и всякое типа ГуглХром-соединение, TW, Anydesk… Только свой хост для поддержки можно.


          1. NAI
            05.01.2022 20:31

            Это и есть энтерпрайз. Там и IDS\IPS должны стоять и регламенты, и прочее.

            Мы тут про "Школьник-студент хочет помочь знакомой девочке или бабушке скайп настроить."


  1. NAI
    04.01.2022 12:50

    del


  1. rionnagel
    04.01.2022 13:47

    Я для таких целей использовал сервер с vnc repeater, плагин для end to end шифрования и враппер vnc сервера на autoit. При запуске просто появляется окошко с id. Клиент тоже во враппер обёрнут, там только id нужное ввести. Это был самый удобный вариант, чтобы просто отдать exe. Сделанно аналогично chunkvnc.
    Второй вариант тоже самое, только раскатывается как служба через puppet с прибитыми гвоздями id.
    Третий вариант openvpn, vnc и guacamole apache.
    Ещё как вариант советуют https://github.com/dchapyshev/aspia (но я не пробовал). Вроде автор даже тут писал обзор своей программы.


  1. saboteur_kiev
    04.01.2022 14:00
    -2

    Не совсем понимаю эти сложности. VNC просто работает. Без всяких дополнительных ухищрений. До 5 удаленных компов можно просто один раз настроить и более чем достаточно для регулярной помощи.

    Для разовых проблем - достаточно skype/telegram с шарингом экрана


    1. fouriki
      05.01.2022 10:52

      А как вы к внц за натом подключаетесь, стесняюсь спросить?


      1. saboteur_kiev
        05.01.2022 14:45

        Он просто берет и подключается. Также, как и teamviewer.
        Один раз продиктовал пароль, чтобы ввести компы в семейную группу и все.


  1. Worky
    04.01.2022 17:04

    ZeroViewer - работает через ссш тоннель на сервер с белым айпи, очень удобный интерфейс

    https://null.la/


  1. Pogan
    04.01.2022 17:22

    С AnyDesk я могу подключаться со смартфона и К смартфонам. Это вообще сейчас наипервейшее требование, потому что зачастую поддержку приходится осуществлять буквально на ходу. Например, из вагона метро, или из вагона поезда, следующего по междугороднему маршруту. Представленное автором решение любопытно, но в моем случае абсолютно неприменимо, увы.


    1. fougasse
      04.01.2022 20:34

      Что ж у вас там за процессы, что саппорт из вагона метро?


      1. aik
        04.01.2022 20:58

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


        1. fougasse
          04.01.2022 22:21

          Нежелание понятно. Непонятны процессы, при которых нужно срочно с мобильного поддержку осуществлять.


          1. aik
            04.01.2022 22:43

            Да любой вопрос, который требует посмотреть на экран юзера.


            1. fougasse
              04.01.2022 23:13

              Но почему из транспорта?


              1. aik
                04.01.2022 23:17

                Потому что позвонили тогда, когда был в транспорте?

                Я как-то с планшета из чешской электрички базу данных поднимал.


  1. aik
    04.01.2022 20:55

    Про быструю помощь из десятки уже написали.

    А ещё есть mesh commander — www.meshcommander.com/home
    Там, насколько помню, можно настроить серверную часть и просто давать людям ссылку на закачку. А потом рулить ими через браузер.


    1. uyrij
      05.01.2022 02:14

      Вопрос про mesh commander - сервер, должен иметь белый ip?


      1. aik
        05.01.2022 06:03

        Да, конечно. Но, думаю, какая-нибудь простенькая vps есть у каждого гика. :)


  1. chingaToMad
    05.01.2022 15:06

    чёт как то сложна, к тому же если vnc в локльной сети и норм то через интернет(через зашифрованый тунель) - сплошное слайдшоу(у меня так было), для себя решил эту задачу из заголовка статьи так: wireguard\openvpn\zerotier + nomachine и всё! чётко работает, благодаря nomachine не важно какая ос используется у пользователя, работает везде одинакого хорошо