Как настроить общий доступ к удаленному рабочему столу через SSH?

Есть ли способ просмотра (и управления) удаленного рабочего стола через SSH? У меня не будет физического доступа к машине с удаленным хостом.

44
задан 16 February 2014 в 09:12

7 ответов

Метод 1:

Этого можно достичь с помощью vino vnc server & amp; remmina (оба идут по умолчанию с Ubuntu; если не установить его, запустив sudo apt-get install remmina). Затем запустите следующие команды с локального компьютера в окне терминала:

  1. ssh -Y gman@remote. Используйте доверенную пересылку X11, иначе она не будет работать

  2. vino-preferences. Это откроет vino-предпочтения.

    vino-preference

  3. Также нажмите configure network automatically to accept connection. Но не вводите пароль, его base64 закодировано . Затем нажмите закрыть. Затем запустите:

    sudo -s
    
    export DISPLAY=:0.0
    
    xhost +
    
    /usr/lib/vino/vino-server & 
    

    Он запустит сервер vino.

  4. Выйти с сервера:

    xhost -
    
    Press CTRL+C twice
    
    exit
    
    exit
    
  5. Затем откройте remmina . Выберите vnc под протоколом.

    На вкладке basic укажите адрес сервера в поле server.

    На вкладке ssh нажмите enable ssh tunnel. В ssh authentication это может быть password или public key:

    remmina-preference

    Нажмите «Сохранить». А затем дважды щелкните имя соединения (домашний рабочий стол, как показано на рисунке), чтобы начать просмотр удаленного рабочего стола.


Метод 2:

x11vnc - это простой VNC-сервер, и вам не придется возиться с настройками Gnome или 500 брандмауэрами, просто установите x11vnc на все ваши компьютеры (с марионетками или чем-то еще, что вы используете для массового контроля).

Затем с локального компьютера запустите:

ssh user@host -L 5900:localhost:5900 "x11vnc -display :0 -noxdamage"

Очевидно, поменяв местами user@host имя пользователя и имя хоста / IP удаленного компьютера.

А затем используйте VNC-клиент по вашему выбору для подключения к localhost:5900. Команда SSH запускает сервер vnc на удаленном компьютере, а затем туннелирует этот порт через SSH. Вам не нужно открывать какие-либо порты (если вы уже можете использовать SSH).

Если на ваших компьютерах установлены забавные настройки отображения, вам лучше не указывать сегмент -display :0 в команде SSH. x11vnc автоматически попытается найти правильный дисплей.


Источник: askubuntu

0
ответ дан 16 February 2014 в 09:12

Обзор решения

Принятие Вас уже имеет установку OpenSSH Server на Вашей хост-машине необходимо сначала включить настольное управление на хост-машине. Если можно сначала включить настольное управление на хост-машине локально, направиться в 1a. Если необходимо сначала включить настольное управление на хост-машине удаленно, направиться в 1b.

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

1a. Локально включите дистанционное управление хост-машиной

Сделайте следование хост-машины:

vino-preferences
  • vino-preferences также в Тире под Desktop Sharing

enter image description here

  1. Галочка Allow other users to view your desktop
  2. Галочка Allow other users to control your desktop
  3. Галочка Require the user to enter this password
  4. Введите трудное для предположения пароля
  5. Закрыть

1b. Удаленно включите дистанционное управление хост-машиной

Сделайте следование клиентской машины, замену 123.123.12.3 с IP-адресом Вашей хост-машины:

ssh -Y 123.123.12.3
  • - Y, Включает передачу X11, которой доверяют. Передачи X11, которым доверяют, не подвергаются средствам управления расширением БЕЗОПАСНОСТИ X11.

vino-preferences
  • vino-preferences также в Тире под Desktop Sharing

enter image description here

  1. Галочка Allow other users to view your desktop
  2. Галочка Allow other users to control your desktop
  3. Галочка Require the user to enter this password
  4. Введите трудное для предположения пароля
  5. Закрыть

Создайте профиль Клиента удаленного рабочего стола на своей Клиентской Машине

Сделайте следование клиентской машины:

remmina
  • remmina также в Тире под Remmina Remote Desktop Client

Ctrl+N или Соединение> Новый

enter image description here

  1. Заполните свой IP-адрес [123.123.12.3], где он говорит Server
  2. Переключитесь на SSH вкладка

enter image description here

  1. Галочка Enable SSH Tunnel
  2. Укажите на свой Настольный Клиент на Ваш нестандартный порт SSH
  3. Установите Ваш SSH Authentication <username> и режим
  4. Подключение

Представление и хост-машина управления

На клиентской машине при просьбе <username>пароль, введите его для создания туннеля SSH. При просьбе относительно пароля VNC введите пароль, Вы ранее ввели в хост-машину.

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

9
ответ дан 16 February 2014 в 09:12
  1. Вы можете использовать ssh для запуска сеанса vnc.
  2. . Использовать Xnest с X11 для переписывания, чтобы удаленно запустить сеанс и переслать его на ваш текущий компьютер. (Я делаю это время от времени с моим пи) man page

Я использую Xnest так:

    [ 117] Xnest :1 -ac &
  • затем DISPLAY=:1 . /etc/X11/Xsession
0
ответ дан 16 February 2014 в 09:12

Как запустить сервер Vino удаленно, без переадресации X (только для командной строки)

Войдите на удаленный компьютер как пользователь, который будет использовать свой рабочий стол и перенаправлять порт 5900 на тот же сервер порт на локальном хосте. С помощью PuTTY перенаправление устанавливается в Connection / SSH / Tunnels. В командной строке используйте:

 ssh -L 5900:localhost:5900 user@remote-computer

Install vino-server, если он еще не установлен. Например:

sudo apt install vino

Включить общий доступ к рабочему столу (соответствует номеру дисплея в 1-й и 2-й строках):

echo $DISPLAY
export DISPLAY=:0
dbus-launch --exit-with-session gsettings set org.gnome.Vino enabled true
dbus-launch --exit-with-session gsettings set org.gnome.Vino prompt-enabled false
dbus-launch --exit-with-session gsettings set org.gnome.Vino require-encryption false
/usr/lib/vino/vino-server

Запустить средство просмотра VNC и подключиться к localhost для сервера VNC адрес.

0
ответ дан 16 February 2014 в 09:12

Мне удалось установить свежую установку Ubuntu 16.04 из удаленного ssh-соединения с помощью следующего скрипта:

#!/bin/bash
export DISPLAY=:0
read -e -p "VNC Password: " -i "ubuntu" password
dconf write /org/gnome/desktop/remote-access/enabled true
dconf write /org/gnome/desktop/remote-access/prompt-enabled false
dconf write /org/gnome/desktop/remote-access/authentication-methods "['vnc']"
dconf write /org/gnome/desktop/remote-access/require-encryption false
dconf write /org/gnome/desktop/remote-access/vnc-password \"\'$(echo -n $password | base64)\'\"
dconf dump /org/gnome/desktop/remote-access/
sudo service lightdm restart

Цитирование важно для любых настроек строки (одиночные галочки внутри кавычек). Чтобы dconf мог писать, ему нужен доступ к XWindows, поэтому необходима часть экспорта DISPLAY. Я думаю, что вам все равно нужно войти в систему на рабочем столе на фактической машине Ubuntu, чтобы соединиться с VNC после этого. Команда dump предназначена для подтверждения того, что все настройки вступили в силу, вам это не нужно.

При желании вы можете сделать это, если хотите постоянно держать дисплей включенным:

dconf write /org/gnome/desktop/screensaver/lock-enabled false
dconf write /org/gnome/desktop/screensaver/ubuntu-lock-on-suspend false
dconf write /org/gnome/desktop/session/idle-delay "uint32 0"
0
ответ дан 16 February 2014 в 09:12

на основе @Khurshid Alam отвечают, что я представляю следующий отрывок:

ssh $TARGETHOST -L 5900:localhost:5900 "x11vnc -localhost -display :0 -noxdamage" &; sleep 10 && vinagre localhost

  • Это - одна команда, которая не требует никакого взаимодействия

  • Это создает туннель SSH с перенаправлением портов, запускается x11vnc довольно безопасным способом и запусками и подключениями средство просмотра VNC

  • Это требует x11vnc на целевом узле, но никакой дальнейшей конфигурации

  • Это требует vinagre на Вашем ПК, но можно тривиально изменить его для другого средства просмотра VNC
0
ответ дан 16 February 2014 в 09:12

В сервере ПК.

  • Откройте 'предпочтения винишка' от терминала или 'Рабочего стола, Совместно использующего' использующий тире.

vino-preferences

В клиенте ПК (от того, где Вы хотите управлять сервером UI).

  • Сохраните настройки как показано в изображениях ниже (с изменениями в месте имени пользователя и IP).

*Basic* tab *Advanced* tab *SSH* tab

Ловушки.

  • Когда я пытался установить предпочтения винишка в сервере от удаленного ПК с помощью SSH, он был изменен, но соединения не произошло. Я должен был сделать это в машине сервера непосредственно (не удаленно). Я' не знаю причину этого поведения.
0
ответ дан 23 November 2019 в 00:00

Другие вопросы по тегам:

Похожие вопросы: