Ответы:
Это может быть достигнуто с vino vnc server & remmina (оба поставляются по умолчанию с ubuntu; если не установить его при запуске sudo apt-get install remmina). Затем запустите следующие команды с локального компьютера в окне терминала:
ssh -Y gman@remote, Используйте надежную пересылку X11, иначе она не будет работать
vino-preferences, Это откроет vino-предпочтения.

Также нажмите configure network automatically to accept connection. Но не вводите пароль, его base64 закодировано . Затем нажмите закрыть. Затем запустите:
sudo -s
export DISPLAY=:0.0
xhost +
/usr/lib/vino/vino-server &
Это запустит сервер vino.
Выйти с сервера:
xhost -
Press CTRL+C twice
exit
exit
Тогда открой Реммина . Выбирай vncпо протоколу.
Под basicвкладкой укажите адрес сервера в serverполе.
На вкладке ssh нажмите enable ssh tunnel. Под ssh authentication, это может быть passwordили public key:

Нажмите сохранить. А затем дважды щелкните имя соединения (домашний рабочий стол, как показано на рисунке), чтобы начать просмотр удаленного рабочего стола.
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Затем автоматически попытается найти правильный дисплей.
Источник: аскубунту
vncviewer localhost::5900 -viewonly -encodings "tight" -quality 0(в Debian / Ubuntu средство просмотра - от узла tailvnc) или vncviewer localhost::5900 -viewonly -PreferredEncoding tight QualityLevel=0(в Red Hat / Fedora средство просмотра - от tigervnc), где уровень качества как в Debian, так и в Redhat равен между 0 и 9, где 9 лучше, но требуется быстрое соединение.
vncviewerдля медленного соединения. Я лично, вероятно, поставлю, QualityLevel=4 or 5потому что 0 qualitylevel(что 256 colors, я думаю) слишком скучно для меня.
-auth guessи запустить его как root. Очень полезно, спасибо!
Предполагая, что вы уже настроили OpenSSH Serverна своем хост-компьютере, вы должны сначала включить управление рабочим столом на вашем хост-компьютере. Если вы можете сначала включить управление рабочим столом на своем хост-компьютере локально, перейдите к 1a. Если вы сначала должны включить удаленное управление настольным компьютером на хост-компьютере, перейдите к 1b.
Затем создайте профиль клиента удаленного рабочего стола на вашем клиентском компьютере, чтобы подключиться к хост-компьютеру через туннель SSH и в конечном итоге просматривать и контролировать рабочий стол хост-компьютера через туннель SSH.
Выполните следующие действия на хост-компьютере:
vino-preferences
vino-preferences также в Dash под Desktop Sharing
Allow other users to view your desktopAllow other users to control your desktopRequire the user to enter this passwordВыполните следующие действия на клиентском компьютере, заменив 123.123.12.3его IP-адресом хост-компьютера:
ssh -Y 123.123.12.3
vino-preferences
vino-preferences также в Dash под Desktop Sharing
Allow other users to view your desktopAllow other users to control your desktopRequire the user to enter this passwordВыполните следующие действия на клиентском компьютере:
remmina
Remmina Remote Desktop ClientCtrl+ Nили Соединение> Новый

ServerSSHвкладку
Enable SSH TunnelSSH Authentication <username>и режимНа клиентском компьютере при запросе <username>пароля введите его для создания туннеля SSH. Когда вас попросят ввести пароль VNC, введите фразу-пароль, которую вы ранее ввели в хост-машину.
В случае успеха на этом этапе вы должны теперь просматривать рабочий стол хост-машины и управлять им с клиентского компьютера через туннель SSH.
Я смог установить новую установку Ubuntu 16.04 из удаленного ssh-соединения с помощью следующего скрипта:
#! / Bin / Баш экспорт DISPLAY =: 0 прочитайте -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 / удаленный доступ / методы аутентификации "['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 / рабочий стол / удаленный доступ / перезапуск службы sudo lightdm
Цитирование важно для любых настроек строки (одиночные галочки внутри кавычек). Чтобы 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"
Xnestс X11 forwording для удаленного запуска сеанса и перенаправления его на ваш текущий компьютер. (Я делаю это время от времени с моей страницей Пи)Я использую Xnestтак:
Xnest :1 -ac &DISPLAY=:1 . /etc/X11/XsessionКак запустить сервер Vino удаленно, без переадресации X (только для командной строки)
Войдите в систему на удаленном компьютере как пользователь, который поделится своим рабочим столом и перенаправит порт 5900 на тот же порт на локальном хосте. С помощью PuTTY перенаправление устанавливается в Connection / SSH / Tunnels. С командной строкой используйте:
ssh -L 5900:localhost:5900 user@remote-computer
Установите, 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.
No protocol specified Failed to connect to Mir: Failed to connect to server socket: No such file or directory Unable to init server: Could not connect: Connection refused Cannot open display: Run 'vino-server --help' to see a full list of available command line options
на основе ответа @Khurshid Alam я представляю следующий фрагмент:
ssh $TARGETHOST -L 5900:localhost:5900 "x11vnc -localhost -display :0 -noxdamage" &; sleep 10 && vinagre localhost
Это одна команда, которая не требует какого-либо взаимодействия
Он создает туннель SSH с переадресацией портов, запускается x11vncдостаточно безопасным способом, запускает и подключает средство просмотра VNC
Требуется x11vnc на целевом хосте, но без дальнейшей настройки
На сервере ПК.
На клиентском ПК (откуда вы хотите управлять пользовательским интерфейсом сервера).
Ловушки.