Рулим Росой по сети

Материал из Rosalab Wiki
Перейти к: навигация, поиск

Задача - рулить!

ROSA Linux, как любой приличный Linuх, умеет управлять-ся и управлять другими системами по сети, т.е. удаленно. Способов для этого существует предостаточно и, чтоб не запутаться, сделаем небольшой обзор проверенно работающих решений. В этом обзоре мы рассмотрим ROSA FRESH KDE (или RED X2) как в роли клиента удаленного доступа, так и в роли сервера. Имеется в виду, конечно, не "настоящий" сервер, на котором одновременно и удаленно работают несколько пользователей запуская приложения и получая результаты. Нет, здесь мы сосредоточимся на задаче периодического управления пользовательской машинкой, ведь ROSA FRESH - пользовательская, десктопная система.

Доступ по SSH - используем консоль и mc

Быстрее всего (а это бывает очень важно для медленных каналов!) работает текстовый доступ к удаленному компьютеру по SSH. Для включения такого доступа нужно на сервере включить сервис sshd:

 sudo systemctl start sshd

или Параметры системы/Управление системными службами)

а с клиента, в консоли дать команду

 ssh name@xxx.xxx.xxx.xxx

где name - имя пользователя а xxx.xxx.xxx.xxx IP-адрес сервера или его доменное имя.

По умолчанию SSH будет пытаться подключиться по стандартному порту 22. Если нужно указать другой порт, то:

 ssh name@xxx.xxx.xxx.xxx -p 5623

... где 5623 — порт для подключения.

Если подключение не происходит, то на компьютере, к которому подключаетесь, нужно в файле /etc/ssh/sshd_config расскоментировать строку (то есть убрать решетку и пробел в ее начале)

 # Port 22

Сделать это можно через консольный редактор:

 sudo nano /etc/ssh/sshd_config

...или через графический:

 gksu xdg-open /etc/ssh/sshd_config

После правок нужно перезапустить сервис SSH:

 sudo systemctl restart sshd

Если SSH будет открыт для подключений из глобальной сети Интернет, то для безопасности рекомендуется заменить 22 на любой другой нестандартный порт, например, 5623 (число с потолка) (если есть фаервол, то не забудьте предварительно открыть нужный порт на нем). Также рекомендуется использовать ключи SSH вместо пароля, закрыть доступ по SSH под пользователем root, а для входа в root-режим логиниться по ключу обычного пользователя с правами sudo (в ROSA из коробки настроено) и давать команду

 sudo -i

...которая, запросив пароль пользователя (не root) переведет консоль в root-режим.

После этого мы попадем в консоль сервера, где можно уже запустить mc и смотреть-править-копировать файлы и в рамках своих прав курочить сервер из консоли. Если хочется утянуть с сервера файл или наоборот, залить файл на сервер, можно запустить mc в консоли на клиенте и выбрав из меню shell-соединение ввести адрес ssh.

MC-Shell-connection.png

При этом в одной панели mc мы будем видеть локальное дерево файлов, а во второй - удаленное, серверное. Ну и F5-F6, копируем и перемещаем!

Защищаем SSH-сессии от прекращения при разрыве соединения

По умолчанию при прекращении SSH-сессии (если вы ее закрыли вручную, в том числе случайно, или, например, отвалился интернет на хосте или клиенте) завершается работа всех программ, запущенных в сессии. Для защиты от этого на хосте (компьютере, которым управляем удаленно) установим screen:

 sudo urpmi screen

Затем критически важные вещи запускаем через него, как именно, почитайте здесь. Можно, например, через screen запустить mc (Miodnight Commander), начать передачу файлов между машинами и выйти из SSH-сессии. Передача файлов продолжится!

Запуск графических приложений через SSH (X11Forwarding)

Настройка сервера

Правим файл /etc/ssh/sshd_config

Проверяем чтобы была такая строка, или добавляем сами:

 X11Forwarding yes

Перезагружаем ssh командой

 sudo systemctl restart sshd

Настройка клиента

Правим файл /etc/ssh/ssh_config

Проверяем чтобы была такая строка, или добавляем сами:

 ForwardX11 yes

Запуск

Заходим на удаленный хост и потом запускаем нужное нам приложение, например: thunar

 ssh -XC name@xxx.xxx.xxx.xxx
 thunar

Сразу запустить приложение thunar

 ssh -XC name@xxx.xxx.xxx.xxx "thunar"

Опции:

 X : перенаправлять графический вывод
 С : компрессия передаваемых данных

Доступ к GUI, или помогаем пользователю

Если нужен доступ к удаленному графическому интерфейсу (ну, например, нужно помочь пользователю подвигать мышью) - тут существует несколько решений, основанных на протоколе удаленного управления vnc. В состав KDE-версии ROSA Fresh входит и сервер и клиент VNC - KRFB и KRDC. Пользоваться этой связкой просто и интуитивно, но быстродействие сервера KRFB оставляет желать лучшего даже на широких каналах и мощных машинах. Поэтому для сервера мы рассмотрим другое решение - сервер x11vnc. Ставится он командой

 urpmi x11vnc

или выбором в "Управлении программами". Для начальной настройки этого vnc-сервера введите в консоли команду:

 x11vnc -storepasswd

при этом будет предложено ввести пароль и он будет сохранен. Для запуска сервера введите команду:

 x11vnc -usepw -display :0 -forever

Теперь, запустив на клиенте тот же KRDC и введя адрес сервера в формате xxx.xxx.xxx.xxx:5900 и пароль вы получите удаленный доступ к рабочему столу на ROSA-FRESH-сервере. Если вам, например в корпоративной среде, нужен постоянный доступ к машине-серверу, создайте в /usr/bin скрипт-файл vnc.sh (чтоб запустить файл-менеджер под правами рута введите команду kdesu dolphin)

 #!/bin/bash
 x11vnc -usepw -display :0 -q -forever -avahi &

сделайте его исполнимым командой:

 chmod +x /usr/bin/vnc.sh 

ну или в свойствах файла в dolphin поставьте галочку исполнимости. Теперь осталось добавить вызов этого скрипта в автозапуск (Параметры системы-Запуск и завершение) перед стартом KDE.

Autostartvnc.png

Всё, теперь пользовательская система "под колпаком"!

Простая программа для подключения к удаленной системе по VNC

Это TigerVNC. Проста, надежна, работает быстро, отрисовка без артефактов. В репозиториях Росы пакет называется TigerVNC, для установки через консоль:

 sudo urpmi tigervnc

Есть версия для Windows и Mac OS, скачивать здесь. Там же статичные сборки для дистриубтивов Linux, где ее нет в репозиториях. Интерфейс сделан на тулките FLTK.

То же самое, но красиво

Ну вот мы, например, администрируем домашнюю или даже корпоративную сеть где несколько систем ROSA FRESH или RED X2. Мы запустили на них sshd и свой скрипт управления, поставили пароли. Как это всё можно красиво-удобно администрировать? Запускаем Dolphin, Сеть, Сеть - видим список машин сети (если не видим, жмем на F5 и видим!) Дальше выбираем нужную машинку на которой подняты сервисы удаленного управления и - видим все наши любимые и вышеуказанные сервисы.

Dolphin-remote-access.png

Теперь, просто кликнув по нужному значку, можно попасть и в удаленное управление GUI, и в доступ по sftp для перемещения файлов и в консоль ssh для текстового управления. Можно властвовать и администрировать! Только нужно не забыть и учитывать, что любая система удаленного доступа это дополнительная уязвимость в системе - включайте сервисы удаленного управления только если они действительно нужны, используйте сложные пароли и другие средства защиты.

Рулим зоопарком систем... или наоборот

А как быть, если у вас ROSA Linux - но не KDE? Ничего страшного - сервер будет работать на любой системе, он маленький и нетребовательный. Клиенты же бывают разные - в состав GNOME входит Vinagre, для MATE можно использовать Remmina и все они умеют связываться по VNC (и, кроме того, по RDP если нужно управлять Windows).

Хорошо, когда у нас сеть состоит из одних систем на основе ROSA и эта сеть - локальная. А что если из Росы нужно управлять далекой Windows или, еще того хуже, MACом? Или, наоборот, находясь в далекой командировке на Камчатке нужно срочно что-то подправить на домашней Росе используя допотопную XP? Тут можно использовать проверенное и доступное в ROSA Linux и других системах средство - Teamviewer. В нашей Росе он доступен из репозиториев, для остальных его можно скачать с официального сайта. Понятно, что такой интеграции, как у встроенных в KDE клиентов удаленного доступа с ним не добьешься, но для удаленного доступа черт-те куда или черт-те откуда он подходит как нельзя лучше.

Подключение по VNC с планшетов и смартфонов с Android

Для подключения с Android установите приложение «Android VNC» из репозитория свободных приложений для Android F-Droid (ссылка). При подключении можно выбрать количество цветов в передаваемой картинке, чем их меньше, тем ниже потребление трафика. Автор пробовал работать по VNC через сеть EDGE с минимальным количеством цветов. Работала очень неплохо. Однако здесь важен стабильный уровень приема мобильной сети для предотвращения большого диапазона колебаний джиттера (это когда сейчас задержка 300 мс, а через секунду она 600 мс, а потом 900 мс и 150 мс, к примеру).

[ Хронологический вид ]Комментарии

Про "помогаем пользователю " ничего не написано. Интересует,именно в МАТЕ:как подключиться к сеансу пользователя?

самое простое - через teamviewer

Войдите, чтобы комментировать.