Есть ли способ просмотра (и управления) удаленного рабочего стола через SSH? У меня не будет физического доступа к машине с удаленным хостом.
Этого можно достичь с помощью vino vnc server & amp; 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
Затем откройте remmina . Выберите 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
автоматически попытается найти правильный дисплей.
Источник: askubuntu
Принятие Вас уже имеет установку OpenSSH Server
на Вашей хост-машине необходимо сначала включить настольное управление на хост-машине. Если можно сначала включить настольное управление на хост-машине локально, направиться в 1a. Если необходимо сначала включить настольное управление на хост-машине удаленно, направиться в 1b.
Затем создайте профиль Клиента удаленного рабочего стола на своей клиентской машине, чтобы соединиться с хост-машиной через туннель SSH и в конечном счете просмотреть и управлять рабочим столом хост-машины через туннель SSH.
Сделайте следование хост-машины:
vino-preferences
vino-preferences
также в Тире под Desktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
Сделайте следование клиентской машины, замену 123.123.12.3
с IP-адресом Вашей хост-машины:
ssh -Y 123.123.12.3
vino-preferences
vino-preferences
также в Тире под Desktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
Сделайте следование клиентской машины:
remmina
Remmina Remote Desktop Client
Ctrl+N или Соединение> Новый
Server
SSH
вкладкаEnable SSH Tunnel
SSH Authentication
<username>
и режимНа клиентской машине при просьбе <username>
пароль, введите его для создания туннеля SSH. При просьбе относительно пароля VNC введите пароль, Вы ранее ввели в хост-машину.
Если успешный на этом шаге, необходимо теперь просматривать и управлять рабочим столом хост-машины от клиентской машины до туннеля SSH.
Xnest
с X11 для переписывания, чтобы удаленно запустить сеанс и переслать его на ваш текущий компьютер. (Я делаю это время от времени с моим пи) man page Я использую Xnest
так:
Xnest :1 -ac &
DISPLAY=:1 . /etc/X11/Xsession
Как запустить сервер 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 адрес.
Мне удалось установить свежую установку 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"
на основе @Khurshid Alam отвечают, что я представляю следующий отрывок:
ssh $TARGETHOST -L 5900:localhost:5900 "x11vnc -localhost -display :0 -noxdamage" &; sleep 10 && vinagre localhost
Это - одна команда, которая не требует никакого взаимодействия
Это создает туннель SSH с перенаправлением портов, запускается x11vnc
довольно безопасным способом и запусками и подключениями средство просмотра VNC
Это требует x11vnc на целевом узле, но никакой дальнейшей конфигурации
В сервере ПК.
В клиенте ПК (от того, где Вы хотите управлять сервером UI).
Ловушки.