Відповіді:
Цього можна досягти за допомогою сервера vino vnc & remmina (обидва приходять за замовчуванням з ubuntu; якщо не встановити його запустивши sudo apt-get install remmina
). Потім запустіть наступні команди з локального комп'ютера у термінальному рядку:
ssh -Y gman@remote
. Використовуйте надійне перенаправлення X11, інакше воно не буде працювати
vino-preferences
. Це відкриє вино-преференції.
Також натисніть configure network automatically to accept connection
. Але не вводьте жодного пароля, його базовий64 закодований . Потім натисніть кнопку «Закрити». Потім запустіть:
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
потім автоматично спробує знайти потрібний дисплей.
Джерело: askubuntu
vncviewer localhost::5900 -viewonly -encodings "tight" -quality 0
(на Debian / Ubuntu переглядач перебуває з жорсткості) або 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
також у тирі під 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.
Мені вдалося встановити нову установку Ubuntu 16.04 з віддаленого з'єднання ssh за допомогою наступного сценарію:
#! / бін / баш експортувати DISPLAY =: 0 read -e -p "Пароль VNC:" -i "ubuntu" пароль dconf write / org / gnome / desktop / віддалений доступ / включений true dconf write / org / gnome / desktop / remote-access / prompt-enable false dconf write / org / gnome / desktop / віддалений доступ / методи аутентифікації "['vnc']" dconf write / org / gnome / desktop / віддалений доступ / вимагає шифрування false dconf write / org / gnome / desktop / віддалений доступ / vnc-пароль \ "\ '$ (відлуння -n $ пароль | base64) \' \" dumpf dump / org / gnome / настільний / віддалений доступ / перезапуск служби sudo служби lightdm
Цитування важливе для будь-якого з рядкових налаштувань (поодинокі галочки всередині лапок). Для того, щоб dconf міг писати, йому потрібен доступ до XWindows, тому для експорту потрібна частина експорту DISPLAY. Я думаю, що вам потрібно все-таки увійти на робочий стіл на фактичній машині Ubuntu, щоб після цього підключитися до VNC. Команда dump якраз існує, щоб підтвердити всі налаштування, які вам потрібні.
За бажанням ви можете це зробити, якщо ви хочете постійно тримати дисплей:
dconf write / org / gnome / desktop / screensaver / enable lock with 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 для віддаленого запуску сеансу та пересилання його на поточний комп'ютер. (Я роблю це час від часу зі своєї пі) man сторінкиЯ використовую Xnest
так:
Xnest :1 -ac &
DISPLAY=:1 . /etc/X11/Xsession
Як запустити сервер Vino віддалено без переадресації X (лише для командного рядка)
Увійдіть на віддалений комп'ютер як той користувач, який поділиться своїм робочим столом та перенаправить порт 5900 до того ж порту на localhost. За допомогою PuTTY перенаправлення встановлюється у З'єднання / SSH / Тунелі. За допомогою командного рядка використовуйте:
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 на цільовому хості, але без подальшої конфігурації
У серверному ПК.
У клієнтському ПК (звідки ви хочете керувати інтерфейсом сервера).
Підводні камені.