Linux

Как организовать удаленный рабочий стол на ubuntu. Удаленный графический доступ к ubuntu через VNC. Клиентские настройки SSH

И Vino . Общий принцип работы: с компьютера под Windows создается защищенный SSH-туннель до Ubuntu и через него создается VNC-подключение (удаленный рабочий стол).

Статья делится на четыре части:

  • Установка и активация SecureShellServer: sudo apt-get install openssh-server service ssh status ssh start/running, process 2006

    Проверка открытости 22 порта (порт, используемый по умолчанию SSH):

    Netstat -tulpan | grep:22 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -

    В Linux ля подключения по SSH с использованием локального проброса портов (local port forwarding) используется в общем виде следующая команда

    Ssh -C -p -L <локальный_порт>:<адрес_машины>:<удаленный_порт> -l <пользователь>

    Это означает, что любое соединение, исходящее из локального компьютера (localhost) через порт <локальный_порт> будет перенаправлено по SSH-тунелю на <удаленный_порт> удаленной машины.

    Существует некоторая путаница относительно какие же IP указывать в и <адрес_машины>. Если компьютер находится за роутером (NAT’ом) то <адрес_машины> должен быть внутренним ip-адресом компьютера (например, 10.0.0.5), а в внешним ip-адресом роутера. Если компьютер подключается к Интернету напрямую, то адреса и <адрес_машины> будут одинаковыми.

    Подводя итог про туннелирование рассмотрим пример:

    Ssh -l myuserid -L 7777:work:22 gate ssh -p 7777 localhost

    Данная комманда делает следующее: создается защищенное ssh-подключение к машине gate под пользователем myuserid. Одновременно с этим начинается прослушивание на локальной (с которой осуществлялось подключение) машине на порту 7777. Если организуется подключение на этот порт (опять изнутри самой локальной машины), то это соединение туннелируется в ssh-соедиенние, доходит до машины gate и с нее осуществляется соединение на машину work на 22 порт. После этого мы проверяем работу туннеля — подключаясь по ssh на локальный порт 7777 мы в итоге подключаемся к машине work (при учете что на ней настроен ssh сервер на порту 22).

    Усиленная защита при использовании SSH-туннеля достигается за счет того, что только один порт должен быть открыт наружу (SSH) и зашифрованное подключение будет идти только через этот порт.
    На сервере проверяем присутствует ли папка

    /home/<имя_пользователся>/.ssh

    /home/<имя_пользователся>/.ssh/authorized_keys

    в ней, если нет, то создаем под пользователем <имя_пользователся>(как правило, это первый пользователь в системе или администратор)

    Mkdir ~/.ssh cd ~/.ssh touch authorized_keys

    Настраиваем ssh для большей безопасности. Файл настроек лежит по адресу

    /etc/ssh/sshd_config

    Делаем резервную копию

    Sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original

    В общем случае следует изменить:

    • TCP-порт прослушивания (по умолчанию 22):
      Port <Порт_на_котором_SSH_будет_ждать_подключения>
    • Отключить ненадежный старый протокол SSH ver.1:
      Protocol 2
    • Разрешить аутентификацию парой открытого/закрытого ключей:
      PubkeyAuthentication yes
    • Указывать, где смотреть на разрешенные публичные ключи:
      AuthorizedKeysFile %h/.ssh/authorized_keys
    • Отключить возможность аутентификации с помощью пароля (можно сделать и позже, после удачного первого соединения):
      PasswordAuthentication no

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

    ~/.ssh/authorized_keys

    Генерируем пару открытый/закрытый ключей на машине, с которой будем подключаться (будет описано далее) и копируем открытый ключ в этот файл.

    Особое внимание нужно обратить на форматирование – весь ключ должен быть размещен в одну строку и начинаться с «ssh-rsa » и доступ к файлу (-rw——- (600)).

    Настраиваем правильный доступ к файлу с ключами

    Chmod go-w $HOME $HOME/.ssh chmod 600 $HOME/.ssh/authorized_key chown `whoami` $HOME/.ssh/authorized_keys

    В файле настроек /etc/ssh/sshd_config изменяем

    StrictModes no

    Для применения настроек, внесенных в файл /etc/ssh/sshd_config , необходимо перезапустить демон sshd.

    Sudo /etc/init.d/ssh restart

  • Скачиваем putty.exe.
    Перед тем как погрузиться в настройки Putty необходимо сделать несколько замечаний.
    • Putty сохраняет настройки в профили.
    • Для сохранения всех настроек в профиль нужно перейти в меню Session в графе Saved Session ввести имя профиля и нажать Save. Для того чтобы загрузить определенный профиль в Putty в том же меню нужно выбрать нужный профиль по имени и нажать Load.
    • Для автоматической загрузки определенного профиля при запуске Putty нужно создать ярлык на exe-файл и в строке Рабочая папка дописать после пути к exe файлу добавить
      -load <имя_профиля>

    Для улучшения безопасности будет использоваться:

    • локальный проброс портов
    • система с открытым ключом

    В случае использования SSH-подключения для доступа по VNC (удаленному рабочему столу) необходимо настроить проброс портов, так называемый local port forwarding . Он используется для повышения безопасности, так как при использовании VNC данные передаются в открытом виде.

    Для проброса портов в Putty переходим в меню Connection -> SSH -> Tunnels и добавляем 5900 как "Source port", localhost:5900 в "Destination" и нажимаем Add.

    Для создания пары открытого/закрытого ключей можно использовать программу Puttygen. Скачиваем Puttygen.exe . В параметрах выбираем SSH-2 RSA, количество битов устанавливаем 2048 и нажимаем кнопку Generate.

    Для дополнительной защиты можно дважды прописать "passphrase". Если есть необходимость при SSH-соединении сразу входить в консоль, то поле можно оставить пустым.

    Открытый ключ сохраняется в понятном только Putty форматировании. Поэтому для установки его в Linux нужно сделать следующее:

    1. Пока puttygen еще открыта – скопировать публичный ключ в разделе "Public key for pasting…" И вставить в файл authorized_keys на сервере.
    2. Указать Putty на файл закрытого ключа в меню Connection -> SSH -> Auth в разделе "Private key file for authentication" сгенерированный файл*.ppk.
  • По умолчанию в Ubuntu уже включен VNC-сервер Vino. Для его настройки нужно перейти в Menu -> System -> Preferences -> Remote Desktop и включить удаленный доступ. В настройках можно включить аутентификацию по паролю, но нельзя настроить порт прослушивания (используется 5900).
    Для возможности более детальной настройки рекомендуется установить X11VNC.
  • Скачиваем TightVNC и устанавливаем. Для целей данной статьи достаточно выбрать только роль клиента.

    Запускаем на Windows машине TightVNC и в поле вбиваем

    Localhost:5900

В этой статье я подробно расскажу о протоколе VNC, позволяющем удаленно управлять Ubuntu как с другой машины с Ubuntu, так и из Windows, а также управлять Windows из Ubuntu в графическом режиме.

Настройка Ubuntu для разрешения удаленного доступа

Здесь все очень просто: сервер и клиент VNC включены в стандартную комплектацию Ubuntu Desktop. На компьютере с Ubuntu, которым мы собираемся управлять, идем в меню "Система - Параметры - Удаленный рабочий стол", и выставляем нужные настройки. В-первую очередь выставим галочку "Позволять другим пользователям видеть ваш рабочий стол", если необходимо позволить им управлять - выставляем вторую галочку также. Внизу на желтом фоне появляется информация о том, как можно подключиться к вашему компьютеру из локальной сети или интернета. Еще один важный момент: не забудьте установить параметры доступа к вашему компьютера, обязаны ли вы будете разрешать каждое входящее подключение, или будете требовать пароль для доступа к компьютеру. Выставлять вариант свободного доступа и без пароля и без разрешений я крайне не рекомендую - все таки время в сети не спокойное =).

ВНИМАНИЕ! Если вы используете эффекты рабочего стола, то необходимо их ОТКЛЮЧИТЬ на время сеанса удаленного доступа, иначе удаленный доступ либо вообще не будет работать, либо будет дико тормозить.

После этого мы можем подключаться к нашей машине из Ubuntu или Windows. Для подключения из Ubuntu никаких дополнительных настроек не надо: просто идем в меню "Приложения - Интернет - Просмотр удаленных рабочих столов", нажимаем кнопку "Подключиться" в панели инструментов, выбираем протокол VNC и указываем имя компьютера в локальной сети или его IP-адрес в поле "Узел", внизу есть дополнительные параметры на ваше усмотрение: "Полноэкранный режим", "Только просмотр", "Масштабировать". Можно подключаться.

VNC в Windows. Настройка UltraVNC.

Для работы с VNC в Windows мы будем пользоваться пакетом UltraVNC. Раньше я пользовался другим пакетом - RealVNC, однако его серверная часть в бесплатной версии не работает под Windows Vista, 2008 и 7, поэтому я буду рассматривать именно UltraVNC, хотя он и более сложен в настройке.

Если вы используете Windows 2000 или XP, то можете попробовать настроить RealVNC самостоятельно, его можно скачать на официальном сайте: http://realvnc.com/products/free/4.1/download.html .

UltraVNC скачиваем здесь: http://www.uvnc.com/download/index.html (выбираем самую последнюю версию, затем выбираем версию Full, затем win32 для обычной 32-битной ОС, или X64 - для 64-битной).

Запускаем установку. На шаге "Select Components" необходимо выбрать тип установки, я не буду останавливаться на этом подробно - опытные пользователи разберутся с этим и сами, я же рекомендую просто выбрать "Full Installation" - полную установку в том случае, если к этой машине будут подключаться. Если нет - выбираем "Viewer only" - только клиентская часть, чтобы иметь возможность подключаться с этого компьютера.

Если у вас установлена Windows Vista или 7, то установочник также предложит скачать дополнительные не-свободные компоненты, без которых под этими версиями Windows будет немного тормозить изображение и не будет возможности передать нажатия клавиш "ctrl+alt+del". Настоятельно рекомендую установить их, отметив галочку "Download Vista addons files now".

Далее установочник предлагает установить "Mirror Driver", при использовании которого обновление экрана происходит быстрее, а нагрузка на центральный процессор снижается в несколько раз. Рекомендую его установить, отметив галочку "Download the mirror driver". Следующий шаг особо важный, если вы устанавливаете программу вместе с серверной частью. Выбираем:

  • "Register UltraVNC Server as system service" - зарегистрировать сервер как системную службу. Отмечаем, если хотим чтобы серверная часть запускалась сама при включении компьютера и работала в фоновом режиме.
  • "Start or restart UltraVNC Server" - запустить или перезапустить серверную службу СЕЙЧАС (отмечаем, иначе для запуска службы придется перезапустить компьютер).
  • "Create UltraVNC desktop icons" - создать значки на рабочем столе (на ваше усмотрение).
  • "Associate UltraVNC Viewer with the .vnc file extension" - ассоциировать файлы.vnc с программой (желательно отметить).
  • "UltraVNC Server driver install" - установка драйвера серверной части (отмечаем обязательно).

После завершения установки с серверной частью, нам предложат сразу же ее настроить. Не буду объяснять все пункты окна настройки - расскажу о самых важных: Раздел "Authentication":

  • "VNC Password" - пароль для подключения (крайне рекомендую указать!).
  • "View-Only Password" - пароль для подключения в режиме просмотра (только наблюдение без управления клавиатурой и мышью, крайне рекомендую указать!).

Раздел "File Transfer":

  • "Enable" - для включения.

Раздел "Misc.":

  • "Remove Aero (Vista)" - отключить эффекты Aero при подключении клиента. Крайне рекомендуется для повышения быстродействия.
  • "Remove Wallpaper for Viewers" - Не показывать обои рабочего стола клиентам. Крайне рекомендуется для повышения быстродействия.
  • "Capture Alpha-Blending" - отображать прозрачности. Не рекомендуется для повышения быстродействия.
  • "Disable Tray Icon" - убрать значек в системной лотке (трее). Таким образом можно скрыть работу сервера.

"When Last Client Disconnects" - что делать когда все отключаются:

  • "Do Nothing" - ничего не делать
  • "Lock Workstation" - заблокировать экран
  • "Logoff Workstation" - выйти из учетной записи

Все. Когда сервер настроен - можно к нему подключаться, причем как из Windows, так и из Ubuntu или любой другой системы, где установлен клиент VNC.

Для подключения к другой машине из Windows используйте ярлык UltraVNC Viewer: здесь нужно ввести IP-адрес или имя компьютера в локальной сети в поле "VNC Sever".

Также может быть интересна опция "View Only" - просмотр экрана без управления компьютером.

Вот в-принципе и все. Если честно, в начале написания этой статьи я и сам не ожидал что в голой только что установленной Ubuntu можно так легко и без проблем настроить удаленный доступ к рабочему столу. Как видите, это намного проще аналогичной задачи в Windows. Конечно вы можете возразить мне, сказав что у Windows есть свой собственный протокол удаленного управления рабочим столом RDP, который настраивается ее стандартными средствами - однако тут я с вами не совсем соглашусь. Во-первых RDP нельзя использовать таким же образом как и VNC для таких задач, как "удаленная помощь другу": при подключении к компьютеру удаленно, локального пользователя выкидывает из его учетной записи, или же удаленный пользователь должен работать в отдельной учетной записи. В то время как удаленные пользователи VNC работают с локальным в одном сеансе (не хватает только второго курсора =)), что позволяет демонстрировать выполнение каких-либо задач через сеть. Ну а во-вторых существуют прекрасные клиенты RDP для Linux, например - krdp, зато вот серверов RDP для других систем, отличных от Windows - нет, так что в плане кросс-платформенности решения от Microsoft, как обычно, остались позади.

О проблемах пишите в комментариях - буду дополнять и исправлять.

Может рассматриваться как акт агрессии, но иногда он просто необходим.

Известны случаи, когда пользователи используют удаленные сессии для уже используемой машины (звучит необычно, но имеет место быть для организации работы с несколькими рабочими столами). Большинство пользователей не знают, когда именно им понадобится данная функциональность.

Опытные пользователи Unix-систем часто говорят о SSH и командной строке, как об инструментах получения доступа к графическому рабочему столу, но существуют отдельные приложения для данной цели.

Портал Techradar протестировал систему VNC и ее функции во многих клиентах. Тем не менее, существуют другие протоколы и виды доступа к удаленному рабочему столу. Растущая популярность подобных клиентов заключается в поддержке нескольких протоколов передачи, поэтому независимо от типа используемого сервера и целевой машины, Вы найдете подходящее решение.

Исследователи придерживались принципа справедливой оценки различных протоколов. Например, NoMachine NX поддерживает подключения VNC, но он проверялся в связке с собственным сервером NX, что вполне разумно.

Клиент TightVNC не тестировался, потому что он очень схож с реализацией TigerVNC. Оба продукта имеют одинаковую кодовую базу, но TigerVNC имеет несколько дополнительных функций.

Как проходило тестирование

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

При тестировании проверялась способность удаленно воспроизводить игру Armegatron. В этой нетребовательная игре на OpenGL на обновление экрана требуются доли секунд времени. Результаты могут быть несколько субъективны, но данный способ оказался очень действенным при демонстрации отзывчивости клиентов.

Клиенты были протестированы совместно с локальным компьютером с 4-х ядерным процессором и 16 гигабайтами памяти в гигабитной локальной сети под Ubuntu 14.04.3. В качестве серверов использовался сервер X11 VNC и официальный сервер NX для клиентов NX. Функциональность на базе протокола RDP поддерживается некоторыми продуктами, но на практике не была протестирована.

Сами клиенты работали на виртуальной машине с 2-х ядерным процессом Core i7, 4Гб ОЗУ и Fedora 23.

Нашли опечатку? Выделите и нажмите Ctrl + Enter

Данная статья посвящена настройкам удаленного доступа к Ubuntu Server. Принцип подключения очень прост: на стороне клиента мы используем программу для удаленного доступа (например, Putty), на стороне сервера устанавливаем и настраиваем пакет OpenSSH. При подключении клиент проходит процедуру авторизации у сервера и между ними устанавливается зашифрованное соединение. Более подробно принцип работы протокола SSH рассматривался в статье по .

Схема сети представлена ниже. Удаленное подключение к серверу будет производиться с компьютера client.

В мы установили Ubuntu Server на чистый жесткий диск. После установки необходимо настроить сетевой интерфейс сервера для выхода в сеть. А, именно, задать Ip-адрес, маску сети, шлюз по-умолчанию. Если у вас интерфейс уже настроен – можете этот шаг пропустить. Настройки сетевых интерфейсов задаются в файле /etc/network/interfaces . Для редактирования воспользуемся текстовым редактором nano .

Попадаем в режим редактирования файла interfaces. Нас тут интересует все, что ниже # The primary network interface. В данный момент сервер получает IP-адрес по DHCP, что не совсем правильно. Сервер должен иметь статический IP, чтобы все узлы в сети точно знали его адрес. Пропишем сетевые настройки вручную.

Мой сервер находится в локальной подсети 192.168.1.0/24. Серверу назначен IP 192.168.1.2, маска 255.255.255.0, шлюз по-умолчанию 192.168.1.1, адрес DNS-сервера 192.168.0.1

Для сохранения файла нажимаем клавиши Ctrl + X –> Y —> Enter. Чтобы применить настройки необходимо перезапустить процесс network. Также можно просто перезагрузить сервер командой sudo reboot.

Проверяем (команда ifconfig -a ) – настройки применились

Все готово для OpesnSS, который можно установить из терминала командами

$ sudo apt-get install openssh-client

$ sudo apt-get install openssh-server

Управлять запуском, остановкой и перезапуском SSH-сервера можно с помощью команд

$ sudo service ssh stop | start | restart

По сути доступ по SSH на сервер уже есть. Но для более тонкой настройки существует конфигурационный файл по адресу /etc/ssh/sshd_config. Доступ к конфигам осуществляется только из под рута.

На стороне клиента скачиваем любую программу для подключения по SSH, я рекомендую Putty . В программе останется лишь ввести Ip-адрес сервера и подключиться к нему. При подключении вводим имя и пароль пользователя.


Подписывайтесь на нашу

Июль 28

В новых версиях Ubuntu уже есть встроенный VNC сервер . Мы будем использовать его стандартные средства. Пока разбирался в данном вопросе — пришлось почитать приличное количество форумов. Так вот, многие пользователи пишут, что в версии ubuntu 14.04 данный фокус не проходит из-за каких-то внутренних тонкостей устройства ядра. Я в данный вопрос глубоко не вдавался…в любом случае, если вдруг вы являетесь счастливым обладателем именно этой версии — можете воспользоваться альтернативным сервером x11vnc.

Ставится он довольно просто:

Sudo apt-get remove vino sudo apt-get install x11vnc

В этой же статье, будет рассмотрен стандартный VNC сервер уже включенный в ubuntu по умолчанию. Как все настроить?

Коннектимся к удаленному хосту.

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

Итак, допустим в локальной сети мы имеем компьютер под ubuntu с ip адресом 10.20.0.30 и пользователем feanor184 . Коннектимся к нему из консоли с ключем -X (для запуска графических иксов):

Ssh -X [email protected]

вводим пароль и попадаем в консоль нашего удаленного компьютера.

Теперь, вводим в ней:

Sudo vino-preferences

и видим графическое окно

Тут ставим галочки:

allow other users to view your desktop — разрешаем смотреть рабочий стол.

allow other users to control your desktop — разрешаем управлять мышкой и клавиатурой удаленно.

require the user to enter this password — обязательно устанавливаем пароль на подключение. Мало ли кто лазиет в нашей сети

show notification area icon: always — всегда отображаем иконку vnc вверху экрана в трее.

Вы можете выставить так же свои настройки — здесь описаны мои настройки)

Сохраняем настройки и отсоединяемся от удаленного хоста.

Для подключения к настроенному компьютеру используем любой клиент с поддержкой vnc.

Например, Remmina — для Linux.

UltraVNC Viewer — для Windows.

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

Что имеем в итоге?

Мы получили возможность подключаться к удаленному компьютеру под ubuntu и выполнять на нем любые операции так, как если бы мы сами сидели за его монитором