Как получить доступ к машине ubuntu через VNC с экрана входа?

Я столкнулся с той же проблемой. Проблема была в пользователе. Разрешение файла XAuthority принадлежало пользователю root. Я изменил разрешение на файл и смог войти в систему.

16
задан 16 April 2011 в 11:16

35 ответов

Лучше всего установить xrdp. После установки вы можете использовать RDP-клиент для подключения к машине - после этого вам будут предложены ваши учетные данные, как вы были бы на экране входа в систему.

10
ответ дан 25 May 2018 в 22:04
  • 1
    Я установил xrdp, но все же я не могу получить доступ к компьютеру ubuntu с экрана входа. – karthick87 17 May 2011 в 17:34
  • 2
    @karthick: Вы подключаетесь к машине с VNC или используете RDP-клиент? – Nathan Osman 17 May 2011 в 20:48
  • 3
    Я не нахожу RDP-клиент в моей машине. Где он будет находиться? – karthick87 18 May 2011 в 10:43
  • 4
    @karthick: Вы используете Ubuntu в качестве своего клиента? Если это так, используемая программа называется «Клиент сервера терминалов». В Windows это называется «Удаленный рабочий стол». IIRC. – Nathan Osman 18 May 2011 в 11:15
  • 5
    Да, спасибо. Возможно ли создать средство запуска для клиента Terminal Server? – karthick87 18 May 2011 в 12:05

Чтобы включить вход GDM через удаленное соединение VNC ssh, попробуйте использовать X11vnc. См. Также этот ответ.

10
ответ дан 25 July 2018 в 22:12

Чтобы включить вход GDM через удаленное соединение VNC ssh, попробуйте использовать X11vnc. См. Также этот ответ.

10
ответ дан 26 July 2018 в 19:39

Чтобы включить вход GDM через удаленное соединение VNC ssh, попробуйте использовать X11vnc. См. Также этот ответ.

10
ответ дан 31 July 2018 в 11:43

Чтобы включить вход GDM через удаленное соединение VNC ssh, попробуйте использовать X11vnc. См. Также этот ответ.

10
ответ дан 2 August 2018 в 03:41

Чтобы включить вход GDM через удаленное соединение VNC ssh, попробуйте использовать X11vnc. См. Также этот ответ.

10
ответ дан 4 August 2018 в 19:44

Чтобы включить вход GDM через удаленное соединение VNC ssh, попробуйте использовать X11vnc. См. Также этот ответ .

10
ответ дан 6 August 2018 в 03:48

Чтобы включить вход GDM через удаленное соединение VNC ssh, попробуйте использовать X11vnc. См. Также этот ответ .

10
ответ дан 7 August 2018 в 21:44

Чтобы включить вход GDM через удаленное соединение VNC ssh, попробуйте использовать X11vnc. См. Также этот ответ .

10
ответ дан 10 August 2018 в 09:57

Чтобы включить вход GDM через удаленное соединение VNC ssh, попробуйте использовать X11vnc. См. Также этот ответ .

10
ответ дан 10 August 2018 в 09:57

Чтобы включить вход GDM через удаленное соединение VNC ssh, попробуйте использовать X11vnc. См. Также этот ответ .

10
ответ дан 13 August 2018 в 16:17
  • 1
    Я установил xrdp, но все же я не могу получить доступ к компьютеру ubuntu с экрана входа. – karthick87 17 May 2011 в 17:34
  • 2
    @karthick: Вы подключаетесь к машине с VNC или используете RDP-клиент? – Nathan Osman 17 May 2011 в 20:48
  • 3
    Я не нахожу RDP-клиент в моей машине. Где он будет находиться? – karthick87 18 May 2011 в 10:43
  • 4
    @karthick: Вы используете Ubuntu в качестве своего клиента? Если это так, используемая программа называется «Клиент сервера терминалов». В Windows это называется «Удаленный рабочий стол». IIRC. – Nathan Osman 18 May 2011 в 11:15
  • 5
    Да, спасибо. Возможно ли создать средство запуска для клиента Terminal Server? – karthick87 18 May 2011 в 12:05

Лучше всего установить xrdp . После установки вы можете использовать RDP-клиент для подключения к машине - после этого вам будут предложены ваши учетные данные, как вы были бы на экране входа в систему.

10
ответ дан 15 August 2018 в 23:03
  • 1
    Я установил xrdp, но все же я не могу получить доступ к компьютеру ubuntu с экрана входа. – karthick87 17 May 2011 в 17:34
  • 2
    @karthick: Вы подключаетесь к машине с VNC или используете RDP-клиент? – Nathan Osman 17 May 2011 в 20:48
  • 3
    Я не нахожу RDP-клиент в моей машине. Где он будет находиться? – karthick87 18 May 2011 в 10:43
  • 4
    @karthick: Вы используете Ubuntu в качестве своего клиента? Если это так, используемая программа называется «Клиент сервера терминалов». В Windows это называется «Удаленный рабочий стол». IIRC. – Nathan Osman 18 May 2011 в 11:15
  • 5
    Да, спасибо. Возможно ли создать средство запуска для клиента Terminal Server? – karthick87 18 May 2011 в 12:05

В общем, я бы рекомендовал x11vnc.

TL; DR

apt-get -y install x11vnc
x11vnc -storepasswd

Введите свой пароль, он по умолчанию сохранен в ~/.vnc/passwd I ' d!] x11vnc .. защищать его с разрешениями файловой системы)

chmod 600 ~/.vnc/passwd

Сохранить мой вспомогательный скрипт локально:

mkdir ~/bin/
curl https://gist.githubusercontent.com/trinitronx/76d2bf98489e5e3e84fa/raw/53885d87f91320b574ca4f7d609e4bb268274f68/start_x11vnc.sh  > ~/bin/start_x11vnc.sh && chmod +x ~/bin/start_x11vnc.sh

С вашего хоста VNC-клиента: [ ! d6]

ssh -f  -L 5900:127.0.0.1:5900 -p 22 youruser@your-ubuntu-host.example.com '~/bin/start_x11vnc.sh && sleep 10'

Или с вашего хоста VNC-сервера запустите:

~/bin/start_x11vnc.sh

через терминал (или запустите его как демон с -forever в качестве службы init.d, upstart service, systemd или, если хотите)

Теперь запустите своего клиента VNC по своему выбору с вашего клиентского хоста, укажите его на: 127.0.0.1:5900, логин с паролем, сохраненным выше.

[d13 ] Использовать X11 «Magic Cookie»

Большинство init.d service (например, служба GDM, upstart , KDM) запустили начальный сервер X11 и systemd unit с MIT Magic Cookie.

Мне повезло, что сеанс VNC открыт на экране входа в Ubuntu GDM * ПРИМЕЧАНИЕ 1, найдя волшебный файл cookie с GDM :

#!/bin/bash
DEFAULT_DISPLAY=:0
X11VNC_DISPLAY="$DEFAULT_DISPLAY"

if [ -x /usr/bin/x11vnc ]; then
     [ "$1" == '-nocache' ] && CACHE_FLAG='-noncache' || CACHE_FLAG='-noncache'
     [ "$2" == '-guess' ] && GUESS_FLAG='-auth guess' || GUESS_FLAG=''
         [ -f /root/.vnc/passwd ] && PASSWORD="/root/.vnc/passwd"
         [ -f $HOME/.vnc/passwd ] && PASSWORD="$HOME/.vnc/passwd"
         [ ! -z "$PASSWORD" ] && x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage
    EXIT_CODE=$?
     if [ $EXIT_CODE -ne 0 ]; then

        echo "\n*********************************************************************"
        echo "*** Could not start x11vnc!  Trying again with gdm MAGIC_COOKIE! ***"
        echo "*********************************************************************\n"

        # Old GDM location for Ubuntu <= 17.10
        MAGIC_COOKIE_FILE=`sudo find /var/run/gdm/ -iname database | grep for-gdm`

        # New GDM location for Ubuntu >= 17.10
        [ -z "$MAGIC_COOKIE_FILE" ] && NUM_MAGIC_COOKIE_FILE_SESSIONS=`sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' 2>/dev/null | wc -l`
        if [ -z "$MAGIC_COOKIE_FILE" -a "$NUM_MAGIC_COOKIE_FILE_SESSIONS" -gt 1 ]; then
            # Find the current user's session
            MAGIC_COOKIE_FILE=`sudo find /run/user/$(id -u) -iwholename '*/gdm/*' -iname '*Xauthority'`
            X11VNC_DISPLAY=":1"
        else
            # Find the GDM user's session (or whichever shows up first in ps list)
            # This should pick up the original gdm session which grabs :0
            # If you login after gdm login screen, your Xorg server may end up on another display!
            # Workaround for now is to restart x11vnc on that display number
            [ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE=`sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' | head -n1`
        fi
        # Old lightdm location for Ubuntu <= 17.10
        [ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE=`sudo find /var/lib -name '.Xauthority' -o -wholename '/var/run/lightdm/root/:0' | head -n1`
        #sudo bash -c "[ -z \"$MAGIC_COOKIE_FILE\" -a -e /var/run/lightdm/root/:0 ]" && MAGIC_COOKIE_FILE='/var/run/lightdm/root/:0'
        [ -n "$MAGIC_COOKIE_FILE" -a -z "$GUESS_FLAG" ] && AUTH_COOKIE_FLAG="-auth $MAGIC_COOKIE_FILE"
        [ ! -z "$PASSWORD" ] && sudo x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage ${AUTH_COOKIE_FLAG}
    fi
fi

Я могу запустить этот скрипт (я назвал его start_x11vnc.sh) в любое время через SSH ... даже до входа в систему через экран входа gdm. Он запускает сервер x11vnc, который затем я могу подключить к туннелю SSH. (Используйте ssh -L 5900:127.0.0.1:5900 или добавьте LocalForward 5900 127.0.0.1:5900 к записи вашего хоста в ~/.ssh/config).

ПРИМЕЧАНИЕ 1. В некоторых новых дистрибутивах дистрибутива, таких как Ubuntu> = 17.10, сеанс сеанса входа в систему GDM полностью разделен от зарегистрированного пользователя X сеанса. Поэтому необходимо сначала подключиться к сеансу GDM X, войти в систему ... и, наконец, отключиться и снова подключиться к вновь запущенному сеансу X. Почему они теперь делают это так, это тайна, но она сломала старую версию этого скрипта.

5
ответ дан 25 May 2018 в 22:04
  • 1
    Не работает. Клиент VNC подключается, затем немедленно закрывается – Dims 31 August 2017 в 14:24
  • 2
    @Dims Используйте команду: vncviewer <remote_ip> – Gokul NC 27 January 2018 в 17:12
  • 3
    скрипт был нарушен для новых версий Ubuntu ... Я обновил его с помощью взлома, чтобы он снова работал. Кажется, теперь сеанс отображения gdm теперь отделен от зарегистрированного сеанса, поэтому, если вы используете этот скрипт на Ubuntu, он сначала приведет вас к экрану входа в GDM, а затем, когда вы войдете в этот экран X-сеанса, он будет пустым. Теперь вам нужно остановить первый процесс x11vnc и снова запустить сценарий для повторного присоединения к отдельному зарегистрированному сеансу X & amp; дисплей. – TrinitronX 31 January 2018 в 04:09

Чтобы включить вход GDM через удаленное соединение VNC ssh, попробуйте использовать X11vnc. См. Также этот ответ.

2
ответ дан 25 May 2018 в 22:04

Вот как это сделать с VNC, если вы не хотите использовать RDP:

Установите сервер X11VNC: sudo apt-get install x11vnc (или через Ubuntu Software Center -> Сервер X11VNC) Установите пароль:
sudo mkdir /etc/x11vnc
sudo x11vnc -storepasswd /etc/x11vnc/passwd
Выберите y, чтобы сохранить пароль. Создайте пустой файл в /etc/init, названный x11vnc.conf:
sudo -H gedit /etc/init/x11vnc.conf
Вставьте это в файл:
start on login-session-start

exec x11vnc -xkb -forever -auth /var/run/lightdm/root/:0 -display :0 -rfbauth /etc/x11vnc/passwd -rfbport 5900 -bg -o /var/log/x11vnc.log
Сохранить и закрыть Перезапустить Ubuntu

Вот и все! Теперь вы можете подключиться к любому клиенту VNC еще до входа в систему.

0
ответ дан 25 May 2018 в 22:04
  • 1
    Это не сработало. – mace 2 February 2018 в 12:10
  • 2
    @mace Интересно, это сработало для меня, возможно, его зависимость от версии Ubuntu. К сожалению, я не помню, какая версия моего Ubuntu была, когда я сделал эту процедуру. – Didier A. 18 February 2018 в 01:59

Вот как это сделать с VNC, если вы не хотите использовать RDP:

Установите сервер X11VNC: sudo apt-get install x11vnc (или через Ubuntu Software Center -> Сервер X11VNC) Установите пароль: sudo mkdir /etc/x11vnc sudo x11vnc -storepasswd /etc/x11vnc/passwd Выберите y, чтобы сохранить пароль. Создайте пустой файл в /etc/init, названный x11vnc.conf: sudo -H gedit /etc/init/x11vnc.conf Вставьте это в файл: start on login-session-start exec x11vnc -xkb -forever -auth /var/run/lightdm/root/:0 -display :0 -rfbauth /etc/x11vnc/passwd -rfbport 5900 -bg -o /var/log/x11vnc.log Сохранить и закрыть Перезапустить Ubuntu

Вот и все! Теперь вы можете подключиться к любому клиенту VNC еще до входа в систему.

0
ответ дан 25 July 2018 в 22:12
  • 1
    Это не сработало. – mace 2 February 2018 в 12:10
  • 2
    @mace Интересно, это сработало для меня, возможно, его зависимость от версии Ubuntu. К сожалению, я не помню, какая версия моего Ubuntu была, когда я сделал эту процедуру. – Didier A. 18 February 2018 в 01:59

В общем, я бы рекомендовал x11vnc.

TL; DR

apt-get -y install x11vnc x11vnc -storepasswd

Введите свой пароль, он по умолчанию сохранен в ~/.vnc/passwd I ' d!] x11vnc .. защищать его с разрешениями файловой системы)

chmod 600 ~/.vnc/passwd

Сохранить мой вспомогательный скрипт локально:

mkdir ~/bin/ curl https://gist.githubusercontent.com/trinitronx/76d2bf98489e5e3e84fa/raw/53885d87f91320b574ca4f7d609e4bb268274f68/start_x11vnc.sh > ~/bin/start_x11vnc.sh && chmod +x ~/bin/start_x11vnc.sh

С вашего хоста VNC-клиента: [ ! d6] ssh -f -L 5900:127.0.0.1:5900 -p 22 youruser@your-ubuntu-host.example.com '~/bin/start_x11vnc.sh && sleep 10'

Или с вашего хоста VNC-сервера запустите:

~/bin/start_x11vnc.sh

через терминал (или запустите его как демон с -forever в качестве службы init.d, upstart service, systemd или, если хотите)

Теперь запустите своего клиента VNC по своему выбору с вашего клиентского хоста, укажите его на: 127.0.0.1:5900, логин с паролем, сохраненным выше.

Использовать X11 «Magic Cookie»

Большинство init.d service (например, служба GDM, upstart , KDM) запустили начальный сервер X11 и systemd unit с MIT Magic Cookie.

Мне повезло, что сеанс VNC открыт на экране входа в Ubuntu GDM * ПРИМЕЧАНИЕ 1, найдя волшебный файл cookie с GDM :

#!/bin/bash DEFAULT_DISPLAY=:0 X11VNC_DISPLAY="$DEFAULT_DISPLAY" if [ -x /usr/bin/x11vnc ]; then [ "$1" == '-nocache' ] && CACHE_FLAG='-noncache' || CACHE_FLAG='-noncache' [ "$2" == '-guess' ] && GUESS_FLAG='-auth guess' || GUESS_FLAG='' [ -f /root/.vnc/passwd ] && PASSWORD="/root/.vnc/passwd" [ -f $HOME/.vnc/passwd ] && PASSWORD="$HOME/.vnc/passwd" [ ! -z "$PASSWORD" ] && x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage EXIT_CODE=$? if [ $EXIT_CODE -ne 0 ]; then echo "\n*********************************************************************" echo "*** Could not start x11vnc! Trying again with gdm MAGIC_COOKIE! ***" echo "*********************************************************************\n" # Old GDM location for Ubuntu <= 17.10 MAGIC_COOKIE_FILE=`sudo find /var/run/gdm/ -iname database | grep for-gdm` # New GDM location for Ubuntu >= 17.10 [ -z "$MAGIC_COOKIE_FILE" ] && NUM_MAGIC_COOKIE_FILE_SESSIONS=`sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' 2>/dev/null | wc -l` if [ -z "$MAGIC_COOKIE_FILE" -a "$NUM_MAGIC_COOKIE_FILE_SESSIONS" -gt 1 ]; then # Find the current user's session MAGIC_COOKIE_FILE=`sudo find /run/user/$(id -u) -iwholename '*/gdm/*' -iname '*Xauthority'` X11VNC_DISPLAY=":1" else # Find the GDM user's session (or whichever shows up first in ps list) # This should pick up the original gdm session which grabs :0 # If you login after gdm login screen, your Xorg server may end up on another display! # Workaround for now is to restart x11vnc on that display number [ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE=`sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' | head -n1` fi # Old lightdm location for Ubuntu <= 17.10 [ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE=`sudo find /var/lib -name '.Xauthority' -o -wholename '/var/run/lightdm/root/:0' | head -n1` #sudo bash -c "[ -z \"$MAGIC_COOKIE_FILE\" -a -e /var/run/lightdm/root/:0 ]" && MAGIC_COOKIE_FILE='/var/run/lightdm/root/:0' [ -n "$MAGIC_COOKIE_FILE" -a -z "$GUESS_FLAG" ] && AUTH_COOKIE_FLAG="-auth $MAGIC_COOKIE_FILE" [ ! -z "$PASSWORD" ] && sudo x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage ${AUTH_COOKIE_FLAG} fi fi

Я могу запустить этот скрипт (я назвал его start_x11vnc.sh) в любое время через SSH ... даже до входа в систему через экран входа gdm. Он запускает сервер x11vnc, который затем я могу подключить к туннелю SSH. (Используйте ssh -L 5900:127.0.0.1:5900 или добавьте LocalForward 5900 127.0.0.1:5900 к записи вашего хоста в ~/.ssh/config).

ПРИМЕЧАНИЕ 1. В некоторых новых дистрибутивах дистрибутива, таких как Ubuntu> = 17.10, сеанс сеанса входа в систему GDM полностью разделен от зарегистрированного пользователя X сеанса. Поэтому необходимо сначала подключиться к сеансу GDM X, войти в систему ... и, наконец, отключиться и снова подключиться к вновь запущенному сеансу X. Почему они теперь делают это так, это тайна, но она сломала старую версию этого скрипта.

5
ответ дан 25 July 2018 в 22:12
  • 1
    Не работает. Клиент VNC подключается, затем немедленно закрывается – Dims 31 August 2017 в 14:24
  • 2
    @Dims Используйте команду: vncviewer <remote_ip> – Gokul NC 27 January 2018 в 17:12
  • 3
    скрипт был нарушен для новых версий Ubuntu ... Я обновил его с помощью взлома, чтобы он снова работал. Кажется, теперь сеанс отображения gdm теперь отделен от зарегистрированного сеанса, поэтому, если вы используете этот скрипт на Ubuntu, он сначала приведет вас к экрану входа в GDM, а затем, когда вы войдете в этот экран X-сеанса, он будет пустым. Теперь вам нужно остановить первый процесс x11vnc и снова запустить сценарий для повторного присоединения к отдельному зарегистрированному сеансу X & amp; дисплей. – TrinitronX 31 January 2018 в 04:09

Вот как это сделать с VNC, если вы не хотите использовать RDP:

Установите сервер X11VNC: sudo apt-get install x11vnc (или через Ubuntu Software Center -> Сервер X11VNC) Установите пароль: sudo mkdir /etc/x11vnc sudo x11vnc -storepasswd /etc/x11vnc/passwd Выберите y, чтобы сохранить пароль. Создайте пустой файл в /etc/init, названный x11vnc.conf: sudo -H gedit /etc/init/x11vnc.conf Вставьте это в файл: start on login-session-start exec x11vnc -xkb -forever -auth /var/run/lightdm/root/:0 -display :0 -rfbauth /etc/x11vnc/passwd -rfbport 5900 -bg -o /var/log/x11vnc.log Сохранить и закрыть Перезапустить Ubuntu

Вот и все! Теперь вы можете подключиться к любому клиенту VNC еще до входа в систему.

0
ответ дан 26 July 2018 в 19:39
  • 1
    Это не сработало. – mace 2 February 2018 в 12:10
  • 2
    @mace Интересно, это сработало для меня, возможно, его зависимость от версии Ubuntu. К сожалению, я не помню, какая версия моего Ubuntu была, когда я сделал эту процедуру. – Didier A. 18 February 2018 в 01:59

В общем, я бы рекомендовал x11vnc.

TL; DR

apt-get -y install x11vnc x11vnc -storepasswd

Введите свой пароль, он по умолчанию сохранен в ~/.vnc/passwd I ' d!] x11vnc .. защищать его с разрешениями файловой системы)

chmod 600 ~/.vnc/passwd

Сохранить мой вспомогательный скрипт локально:

mkdir ~/bin/ curl https://gist.githubusercontent.com/trinitronx/76d2bf98489e5e3e84fa/raw/53885d87f91320b574ca4f7d609e4bb268274f68/start_x11vnc.sh > ~/bin/start_x11vnc.sh && chmod +x ~/bin/start_x11vnc.sh

С вашего хоста VNC-клиента: [ ! d6] ssh -f -L 5900:127.0.0.1:5900 -p 22 youruser@your-ubuntu-host.example.com '~/bin/start_x11vnc.sh && sleep 10'

Или с вашего хоста VNC-сервера запустите:

~/bin/start_x11vnc.sh

через терминал (или запустите его как демон с -forever в качестве службы init.d, upstart service, systemd или, если хотите)

Теперь запустите своего клиента VNC по своему выбору с вашего клиентского хоста, укажите его на: 127.0.0.1:5900, логин с паролем, сохраненным выше.

Использовать X11 «Magic Cookie»

Большинство init.d service (например, служба GDM, upstart , KDM) запустили начальный сервер X11 и systemd unit с MIT Magic Cookie.

Мне повезло, что сеанс VNC открыт на экране входа в Ubuntu GDM * ПРИМЕЧАНИЕ 1, найдя волшебный файл cookie с GDM :

#!/bin/bash DEFAULT_DISPLAY=:0 X11VNC_DISPLAY="$DEFAULT_DISPLAY" if [ -x /usr/bin/x11vnc ]; then [ "$1" == '-nocache' ] && CACHE_FLAG='-noncache' || CACHE_FLAG='-noncache' [ "$2" == '-guess' ] && GUESS_FLAG='-auth guess' || GUESS_FLAG='' [ -f /root/.vnc/passwd ] && PASSWORD="/root/.vnc/passwd" [ -f $HOME/.vnc/passwd ] && PASSWORD="$HOME/.vnc/passwd" [ ! -z "$PASSWORD" ] && x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage EXIT_CODE=$? if [ $EXIT_CODE -ne 0 ]; then echo "\n*********************************************************************" echo "*** Could not start x11vnc! Trying again with gdm MAGIC_COOKIE! ***" echo "*********************************************************************\n" # Old GDM location for Ubuntu <= 17.10 MAGIC_COOKIE_FILE=`sudo find /var/run/gdm/ -iname database | grep for-gdm` # New GDM location for Ubuntu >= 17.10 [ -z "$MAGIC_COOKIE_FILE" ] && NUM_MAGIC_COOKIE_FILE_SESSIONS=`sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' 2>/dev/null | wc -l` if [ -z "$MAGIC_COOKIE_FILE" -a "$NUM_MAGIC_COOKIE_FILE_SESSIONS" -gt 1 ]; then # Find the current user's session MAGIC_COOKIE_FILE=`sudo find /run/user/$(id -u) -iwholename '*/gdm/*' -iname '*Xauthority'` X11VNC_DISPLAY=":1" else # Find the GDM user's session (or whichever shows up first in ps list) # This should pick up the original gdm session which grabs :0 # If you login after gdm login screen, your Xorg server may end up on another display! # Workaround for now is to restart x11vnc on that display number [ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE=`sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' | head -n1` fi # Old lightdm location for Ubuntu <= 17.10 [ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE=`sudo find /var/lib -name '.Xauthority' -o -wholename '/var/run/lightdm/root/:0' | head -n1` #sudo bash -c "[ -z \"$MAGIC_COOKIE_FILE\" -a -e /var/run/lightdm/root/:0 ]" && MAGIC_COOKIE_FILE='/var/run/lightdm/root/:0' [ -n "$MAGIC_COOKIE_FILE" -a -z "$GUESS_FLAG" ] && AUTH_COOKIE_FLAG="-auth $MAGIC_COOKIE_FILE" [ ! -z "$PASSWORD" ] && sudo x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage ${AUTH_COOKIE_FLAG} fi fi

Я могу запустить этот скрипт (я назвал его start_x11vnc.sh) в любое время через SSH ... даже до входа в систему через экран входа gdm. Он запускает сервер x11vnc, который затем я могу подключить к туннелю SSH. (Используйте ssh -L 5900:127.0.0.1:5900 или добавьте LocalForward 5900 127.0.0.1:5900 к записи вашего хоста в ~/.ssh/config).

ПРИМЕЧАНИЕ 1. В некоторых новых дистрибутивах дистрибутива, таких как Ubuntu> = 17.10, сеанс сеанса входа в систему GDM полностью разделен от зарегистрированного пользователя X сеанса. Поэтому необходимо сначала подключиться к сеансу GDM X, войти в систему ... и, наконец, отключиться и снова подключиться к вновь запущенному сеансу X. Почему они теперь делают это так, это тайна, но она сломала старую версию этого скрипта.

5
ответ дан 26 July 2018 в 19:39
  • 1
    Не работает. Клиент VNC подключается, затем немедленно закрывается – Dims 31 August 2017 в 14:24
  • 2
    @Dims Используйте команду: vncviewer <remote_ip> – Gokul NC 27 January 2018 в 17:12
  • 3
    скрипт был нарушен для новых версий Ubuntu ... Я обновил его с помощью взлома, чтобы он снова работал. Кажется, теперь сеанс отображения gdm теперь отделен от зарегистрированного сеанса, поэтому, если вы используете этот скрипт на Ubuntu, он сначала приведет вас к экрану входа в GDM, а затем, когда вы войдете в этот экран X-сеанса, он будет пустым. Теперь вам нужно остановить первый процесс x11vnc и снова запустить сценарий для повторного присоединения к отдельному зарегистрированному сеансу X & amp; дисплей. – TrinitronX 31 January 2018 в 04:09

Вот как это сделать с VNC, если вы не хотите использовать RDP:

Установите сервер X11VNC: sudo apt-get install x11vnc (или через Ubuntu Software Center -> Сервер X11VNC) Установите пароль: sudo mkdir /etc/x11vnc sudo x11vnc -storepasswd /etc/x11vnc/passwd Выберите y, чтобы сохранить пароль. Создайте пустой файл в /etc/init, названный x11vnc.conf: sudo -H gedit /etc/init/x11vnc.conf Вставьте это в файл: start on login-session-start exec x11vnc -xkb -forever -auth /var/run/lightdm/root/:0 -display :0 -rfbauth /etc/x11vnc/passwd -rfbport 5900 -bg -o /var/log/x11vnc.log Сохранить и закрыть Перезапустить Ubuntu

Вот и все! Теперь вы можете подключиться к любому клиенту VNC еще до входа в систему.

0
ответ дан 31 July 2018 в 11:43
  • 1
    Это не сработало. – mace 2 February 2018 в 12:10
  • 2
    @mace Интересно, это сработало для меня, возможно, его зависимость от версии Ubuntu. К сожалению, я не помню, какая версия моего Ubuntu была, когда я сделал эту процедуру. – Didier A. 18 February 2018 в 01:59

В общем, я бы рекомендовал x11vnc.

TL; DR

apt-get -y install x11vnc x11vnc -storepasswd

Введите свой пароль, он по умолчанию сохранен в ~/.vnc/passwd I ' d!] x11vnc .. защищать его с разрешениями файловой системы)

chmod 600 ~/.vnc/passwd

Сохранить мой вспомогательный скрипт локально:

mkdir ~/bin/ curl https://gist.githubusercontent.com/trinitronx/76d2bf98489e5e3e84fa/raw/53885d87f91320b574ca4f7d609e4bb268274f68/start_x11vnc.sh > ~/bin/start_x11vnc.sh && chmod +x ~/bin/start_x11vnc.sh

С вашего хоста VNC-клиента: [ ! d6] ssh -f -L 5900:127.0.0.1:5900 -p 22 youruser@your-ubuntu-host.example.com '~/bin/start_x11vnc.sh && sleep 10'

Или с вашего хоста VNC-сервера запустите:

~/bin/start_x11vnc.sh

через терминал (или запустите его как демон с -forever в качестве службы init.d, upstart service, systemd или, если хотите)

Теперь запустите своего клиента VNC по своему выбору с вашего клиентского хоста, укажите его на: 127.0.0.1:5900, логин с паролем, сохраненным выше.

Использовать X11 «Magic Cookie»

Большинство init.d service (например, служба GDM, upstart , KDM) запустили начальный сервер X11 и systemd unit с MIT Magic Cookie.

Мне повезло, что сеанс VNC открыт на экране входа в Ubuntu GDM * ПРИМЕЧАНИЕ 1, найдя волшебный файл cookie с GDM :

#!/bin/bash DEFAULT_DISPLAY=:0 X11VNC_DISPLAY="$DEFAULT_DISPLAY" if [ -x /usr/bin/x11vnc ]; then [ "$1" == '-nocache' ] && CACHE_FLAG='-noncache' || CACHE_FLAG='-noncache' [ "$2" == '-guess' ] && GUESS_FLAG='-auth guess' || GUESS_FLAG='' [ -f /root/.vnc/passwd ] && PASSWORD="/root/.vnc/passwd" [ -f $HOME/.vnc/passwd ] && PASSWORD="$HOME/.vnc/passwd" [ ! -z "$PASSWORD" ] && x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage EXIT_CODE=$? if [ $EXIT_CODE -ne 0 ]; then echo "\n*********************************************************************" echo "*** Could not start x11vnc! Trying again with gdm MAGIC_COOKIE! ***" echo "*********************************************************************\n" # Old GDM location for Ubuntu <= 17.10 MAGIC_COOKIE_FILE=`sudo find /var/run/gdm/ -iname database | grep for-gdm` # New GDM location for Ubuntu >= 17.10 [ -z "$MAGIC_COOKIE_FILE" ] && NUM_MAGIC_COOKIE_FILE_SESSIONS=`sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' 2>/dev/null | wc -l` if [ -z "$MAGIC_COOKIE_FILE" -a "$NUM_MAGIC_COOKIE_FILE_SESSIONS" -gt 1 ]; then # Find the current user's session MAGIC_COOKIE_FILE=`sudo find /run/user/$(id -u) -iwholename '*/gdm/*' -iname '*Xauthority'` X11VNC_DISPLAY=":1" else # Find the GDM user's session (or whichever shows up first in ps list) # This should pick up the original gdm session which grabs :0 # If you login after gdm login screen, your Xorg server may end up on another display! # Workaround for now is to restart x11vnc on that display number [ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE=`sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' | head -n1` fi # Old lightdm location for Ubuntu <= 17.10 [ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE=`sudo find /var/lib -name '.Xauthority' -o -wholename '/var/run/lightdm/root/:0' | head -n1` #sudo bash -c "[ -z \"$MAGIC_COOKIE_FILE\" -a -e /var/run/lightdm/root/:0 ]" && MAGIC_COOKIE_FILE='/var/run/lightdm/root/:0' [ -n "$MAGIC_COOKIE_FILE" -a -z "$GUESS_FLAG" ] && AUTH_COOKIE_FLAG="-auth $MAGIC_COOKIE_FILE" [ ! -z "$PASSWORD" ] && sudo x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage ${AUTH_COOKIE_FLAG} fi fi

Я могу запустить этот скрипт (я назвал его start_x11vnc.sh) в любое время через SSH ... даже до входа в систему через экран входа gdm. Он запускает сервер x11vnc, который затем я могу подключить к туннелю SSH. (Используйте ssh -L 5900:127.0.0.1:5900 или добавьте LocalForward 5900 127.0.0.1:5900 к записи вашего хоста в ~/.ssh/config).

ПРИМЕЧАНИЕ 1. В некоторых новых дистрибутивах дистрибутива, таких как Ubuntu> = 17.10, сеанс сеанса входа в систему GDM полностью разделен от зарегистрированного пользователя X сеанса. Поэтому необходимо сначала подключиться к сеансу GDM X, войти в систему ... и, наконец, отключиться и снова подключиться к вновь запущенному сеансу X. Почему они теперь делают это так, это тайна, но она сломала старую версию этого скрипта.

5
ответ дан 31 July 2018 в 11:43
  • 1
    Не работает. Клиент VNC подключается, затем немедленно закрывается – Dims 31 August 2017 в 14:24
  • 2
    @Dims Используйте команду: vncviewer <remote_ip> – Gokul NC 27 January 2018 в 17:12
  • 3
    скрипт был нарушен для новых версий Ubuntu ... Я обновил его с помощью взлома, чтобы он снова работал. Кажется, теперь сеанс отображения gdm теперь отделен от зарегистрированного сеанса, поэтому, если вы используете этот скрипт на Ubuntu, он сначала приведет вас к экрану входа в GDM, а затем, когда вы войдете в этот экран X-сеанса, он будет пустым. Теперь вам нужно остановить первый процесс x11vnc и снова запустить сценарий для повторного присоединения к отдельному зарегистрированному сеансу X & amp; дисплей. – TrinitronX 31 January 2018 в 04:09

Вот как это сделать с VNC, если вы не хотите использовать RDP:

Установите сервер X11VNC: sudo apt-get install x11vnc (или через Ubuntu Software Center -> Сервер X11VNC) Установите пароль: sudo mkdir /etc/x11vnc sudo x11vnc -storepasswd /etc/x11vnc/passwd Выберите y, чтобы сохранить пароль. Создайте пустой файл в /etc/init, названный x11vnc.conf: sudo -H gedit /etc/init/x11vnc.conf Вставьте это в файл: start on login-session-start exec x11vnc -xkb -forever -auth /var/run/lightdm/root/:0 -display :0 -rfbauth /etc/x11vnc/passwd -rfbport 5900 -bg -o /var/log/x11vnc.log Сохранить и закрыть Перезапустить Ubuntu

Вот и все! Теперь вы можете подключиться к любому клиенту VNC еще до входа в систему.

0
ответ дан 2 August 2018 в 03:41
  • 1
    Это не сработало. – mace 2 February 2018 в 12:10
  • 2
    @mace Интересно, это сработало для меня, возможно, его зависимость от версии Ubuntu. К сожалению, я не помню, какая версия моего Ubuntu была, когда я сделал эту процедуру. – Didier A. 18 February 2018 в 01:59

В общем, я бы рекомендовал x11vnc.

TL; DR

apt-get -y install x11vnc x11vnc -storepasswd

Введите свой пароль, он по умолчанию сохранен в ~/.vnc/passwd I ' d!] x11vnc .. защищать его с разрешениями файловой системы)

chmod 600 ~/.vnc/passwd

Сохранить мой вспомогательный скрипт локально:

mkdir ~/bin/ curl https://gist.githubusercontent.com/trinitronx/76d2bf98489e5e3e84fa/raw/53885d87f91320b574ca4f7d609e4bb268274f68/start_x11vnc.sh > ~/bin/start_x11vnc.sh && chmod +x ~/bin/start_x11vnc.sh

С вашего хоста VNC-клиента: [ ! d6] ssh -f -L 5900:127.0.0.1:5900 -p 22 youruser@your-ubuntu-host.example.com '~/bin/start_x11vnc.sh && sleep 10'

Или с вашего хоста VNC-сервера запустите:

~/bin/start_x11vnc.sh

через терминал (или запустите его как демон с -forever в качестве службы init.d, upstart service, systemd или, если хотите)

Теперь запустите своего клиента VNC по своему выбору с вашего клиентского хоста, укажите его на: 127.0.0.1:5900, логин с паролем, сохраненным выше.

Использовать X11 «Magic Cookie»

Большинство init.d service (например, служба GDM, upstart , KDM) запустили начальный сервер X11 и systemd unit с MIT Magic Cookie.

Мне повезло, что сеанс VNC открыт на экране входа в Ubuntu GDM * ПРИМЕЧАНИЕ 1, найдя волшебный файл cookie с GDM :

#!/bin/bash DEFAULT_DISPLAY=:0 X11VNC_DISPLAY="$DEFAULT_DISPLAY" if [ -x /usr/bin/x11vnc ]; then [ "$1" == '-nocache' ] && CACHE_FLAG='-noncache' || CACHE_FLAG='-noncache' [ "$2" == '-guess' ] && GUESS_FLAG='-auth guess' || GUESS_FLAG='' [ -f /root/.vnc/passwd ] && PASSWORD="/root/.vnc/passwd" [ -f $HOME/.vnc/passwd ] && PASSWORD="$HOME/.vnc/passwd" [ ! -z "$PASSWORD" ] && x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage EXIT_CODE=$? if [ $EXIT_CODE -ne 0 ]; then echo "\n*********************************************************************" echo "*** Could not start x11vnc! Trying again with gdm MAGIC_COOKIE! ***" echo "*********************************************************************\n" # Old GDM location for Ubuntu <= 17.10 MAGIC_COOKIE_FILE=`sudo find /var/run/gdm/ -iname database | grep for-gdm` # New GDM location for Ubuntu >= 17.10 [ -z "$MAGIC_COOKIE_FILE" ] && NUM_MAGIC_COOKIE_FILE_SESSIONS=`sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' 2>/dev/null | wc -l` if [ -z "$MAGIC_COOKIE_FILE" -a "$NUM_MAGIC_COOKIE_FILE_SESSIONS" -gt 1 ]; then # Find the current user's session MAGIC_COOKIE_FILE=`sudo find /run/user/$(id -u) -iwholename '*/gdm/*' -iname '*Xauthority'` X11VNC_DISPLAY=":1" else # Find the GDM user's session (or whichever shows up first in ps list) # This should pick up the original gdm session which grabs :0 # If you login after gdm login screen, your Xorg server may end up on another display! # Workaround for now is to restart x11vnc on that display number [ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE=`sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' | head -n1` fi # Old lightdm location for Ubuntu <= 17.10 [ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE=`sudo find /var/lib -name '.Xauthority' -o -wholename '/var/run/lightdm/root/:0' | head -n1` #sudo bash -c "[ -z \"$MAGIC_COOKIE_FILE\" -a -e /var/run/lightdm/root/:0 ]" && MAGIC_COOKIE_FILE='/var/run/lightdm/root/:0' [ -n "$MAGIC_COOKIE_FILE" -a -z "$GUESS_FLAG" ] && AUTH_COOKIE_FLAG="-auth $MAGIC_COOKIE_FILE" [ ! -z "$PASSWORD" ] && sudo x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage ${AUTH_COOKIE_FLAG} fi fi

Я могу запустить этот скрипт (я назвал его start_x11vnc.sh) в любое время через SSH ... даже до входа в систему через экран входа gdm. Он запускает сервер x11vnc, который затем я могу подключить к туннелю SSH. (Используйте ssh -L 5900:127.0.0.1:5900 или добавьте LocalForward 5900 127.0.0.1:5900 к записи вашего хоста в ~/.ssh/config).

ПРИМЕЧАНИЕ 1. В некоторых новых дистрибутивах дистрибутива, таких как Ubuntu> = 17.10, сеанс сеанса входа в систему GDM полностью разделен от зарегистрированного пользователя X сеанса. Поэтому необходимо сначала подключиться к сеансу GDM X, войти в систему ... и, наконец, отключиться и снова подключиться к вновь запущенному сеансу X. Почему они теперь делают это так, это тайна, но она сломала старую версию этого скрипта.

5
ответ дан 2 August 2018 в 03:41
  • 1
    Не работает. Клиент VNC подключается, затем немедленно закрывается – Dims 31 August 2017 в 14:24
  • 2
    @Dims Используйте команду: vncviewer <remote_ip> – Gokul NC 27 January 2018 в 17:12
  • 3
    скрипт был нарушен для новых версий Ubuntu ... Я обновил его с помощью взлома, чтобы он снова работал. Кажется, теперь сеанс отображения gdm теперь отделен от зарегистрированного сеанса, поэтому, если вы используете этот скрипт на Ubuntu, он сначала приведет вас к экрану входа в GDM, а затем, когда вы войдете в этот экран X-сеанса, он будет пустым. Теперь вам нужно остановить первый процесс x11vnc и снова запустить сценарий для повторного присоединения к отдельному зарегистрированному сеансу X & amp; дисплей. – TrinitronX 31 January 2018 в 04:09

Вот как это сделать с VNC, если вы не хотите использовать RDP:

Установите сервер X11VNC: sudo apt-get install x11vnc (или через Ubuntu Software Center -> Сервер X11VNC) Установите пароль: sudo mkdir /etc/x11vnc sudo x11vnc -storepasswd /etc/x11vnc/passwd Выберите y, чтобы сохранить пароль. Создайте пустой файл в /etc/init, названный x11vnc.conf: sudo -H gedit /etc/init/x11vnc.conf Вставьте это в файл: start on login-session-start exec x11vnc -xkb -forever -auth /var/run/lightdm/root/:0 -display :0 -rfbauth /etc/x11vnc/passwd -rfbport 5900 -bg -o /var/log/x11vnc.log Сохранить и закрыть Перезапустить Ubuntu

Вот и все! Теперь вы можете подключиться к любому клиенту VNC еще до входа в систему.

0
ответ дан 4 August 2018 в 19:44
  • 1
    Это не сработало. – mace 2 February 2018 в 12:10
  • 2
    @mace Интересно, это сработало для меня, возможно, его зависимость от версии Ubuntu. К сожалению, я не помню, какая версия моего Ubuntu была, когда я сделал эту процедуру. – Didier A. 18 February 2018 в 01:59

В общем, я бы рекомендовал x11vnc.

TL; DR

apt-get -y install x11vnc x11vnc -storepasswd

Введите свой пароль, он по умолчанию сохранен в ~/.vnc/passwd I ' d!] x11vnc .. защищать его с разрешениями файловой системы)

chmod 600 ~/.vnc/passwd

Сохранить мой вспомогательный скрипт локально:

mkdir ~/bin/ curl https://gist.githubusercontent.com/trinitronx/76d2bf98489e5e3e84fa/raw/53885d87f91320b574ca4f7d609e4bb268274f68/start_x11vnc.sh > ~/bin/start_x11vnc.sh && chmod +x ~/bin/start_x11vnc.sh

С вашего хоста VNC-клиента: [ ! d6] ssh -f -L 5900:127.0.0.1:5900 -p 22 youruser@your-ubuntu-host.example.com '~/bin/start_x11vnc.sh && sleep 10'

Или с вашего хоста VNC-сервера запустите:

~/bin/start_x11vnc.sh

через терминал (или запустите его как демон с -forever в качестве службы init.d, upstart service, systemd или, если хотите)

Теперь запустите своего клиента VNC по своему выбору с вашего клиентского хоста, укажите его на: 127.0.0.1:5900, логин с паролем, сохраненным выше.

Использовать X11 «Magic Cookie»

Большинство init.d service (например, служба GDM, upstart , KDM) запустили начальный сервер X11 и systemd unit с MIT Magic Cookie.

Мне повезло, что сеанс VNC открыт на экране входа в Ubuntu GDM * ПРИМЕЧАНИЕ 1, найдя волшебный файл cookie с GDM :

#!/bin/bash DEFAULT_DISPLAY=:0 X11VNC_DISPLAY="$DEFAULT_DISPLAY" if [ -x /usr/bin/x11vnc ]; then [ "$1" == '-nocache' ] && CACHE_FLAG='-noncache' || CACHE_FLAG='-noncache' [ "$2" == '-guess' ] && GUESS_FLAG='-auth guess' || GUESS_FLAG='' [ -f /root/.vnc/passwd ] && PASSWORD="/root/.vnc/passwd" [ -f $HOME/.vnc/passwd ] && PASSWORD="$HOME/.vnc/passwd" [ ! -z "$PASSWORD" ] && x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage EXIT_CODE=$? if [ $EXIT_CODE -ne 0 ]; then echo "\n*********************************************************************" echo "*** Could not start x11vnc! Trying again with gdm MAGIC_COOKIE! ***" echo "*********************************************************************\n" # Old GDM location for Ubuntu <= 17.10 MAGIC_COOKIE_FILE=`sudo find /var/run/gdm/ -iname database | grep for-gdm` # New GDM location for Ubuntu >= 17.10 [ -z "$MAGIC_COOKIE_FILE" ] && NUM_MAGIC_COOKIE_FILE_SESSIONS=`sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' 2>/dev/null | wc -l` if [ -z "$MAGIC_COOKIE_FILE" -a "$NUM_MAGIC_COOKIE_FILE_SESSIONS" -gt 1 ]; then # Find the current user's session MAGIC_COOKIE_FILE=`sudo find /run/user/$(id -u) -iwholename '*/gdm/*' -iname '*Xauthority'` X11VNC_DISPLAY=":1" else # Find the GDM user's session (or whichever shows up first in ps list) # This should pick up the original gdm session which grabs :0 # If you login after gdm login screen, your Xorg server may end up on another display! # Workaround for now is to restart x11vnc on that display number [ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE=`sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' | head -n1` fi # Old lightdm location for Ubuntu <= 17.10 [ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE=`sudo find /var/lib -name '.Xauthority' -o -wholename '/var/run/lightdm/root/:0' | head -n1` #sudo bash -c "[ -z \"$MAGIC_COOKIE_FILE\" -a -e /var/run/lightdm/root/:0 ]" && MAGIC_COOKIE_FILE='/var/run/lightdm/root/:0' [ -n "$MAGIC_COOKIE_FILE" -a -z "$GUESS_FLAG" ] && AUTH_COOKIE_FLAG="-auth $MAGIC_COOKIE_FILE" [ ! -z "$PASSWORD" ] && sudo x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage ${AUTH_COOKIE_FLAG} fi fi

Я могу запустить этот скрипт (я назвал его start_x11vnc.sh) в любое время через SSH ... даже до входа в систему через экран входа gdm. Он запускает сервер x11vnc, который затем я могу подключить к туннелю SSH. (Используйте ssh -L 5900:127.0.0.1:5900 или добавьте LocalForward 5900 127.0.0.1:5900 к записи вашего хоста в ~/.ssh/config).

ПРИМЕЧАНИЕ 1. В некоторых новых дистрибутивах дистрибутива, таких как Ubuntu> = 17.10, сеанс сеанса входа в систему GDM полностью разделен от зарегистрированного пользователя X сеанса. Поэтому необходимо сначала подключиться к сеансу GDM X, войти в систему ... и, наконец, отключиться и снова подключиться к вновь запущенному сеансу X. Почему они теперь делают это так, это тайна, но она сломала старую версию этого скрипта.

5
ответ дан 4 August 2018 в 19:44
  • 1
    Не работает. Клиент VNC подключается, затем немедленно закрывается – Dims 31 August 2017 в 14:24
  • 2
    @Dims Используйте команду: vncviewer <remote_ip> – Gokul NC 27 January 2018 в 17:12
  • 3
    скрипт был нарушен для новых версий Ubuntu ... Я обновил его с помощью взлома, чтобы он снова работал. Кажется, теперь сеанс отображения gdm теперь отделен от зарегистрированного сеанса, поэтому, если вы используете этот скрипт на Ubuntu, он сначала приведет вас к экрану входа в GDM, а затем, когда вы войдете в этот экран X-сеанса, он будет пустым. Теперь вам нужно остановить первый процесс x11vnc и снова запустить сценарий для повторного присоединения к отдельному зарегистрированному сеансу X & amp; дисплей. – TrinitronX 31 January 2018 в 04:09

В целом, я бы рекомендовал x11vnc .

TL; DR

apt-get -y install x11vnc
x11vnc -storepasswd

Введите свой пароль, он по умолчанию сохраняется в ~/.vnc/passwd в зашифрованном виде INSECURE. .. защищать его с разрешениями файловой системы)

chmod 600 ~/.vnc/passwd

Сохранить мой вспомогательный скрипт локально:

mkdir ~/bin/
curl https://gist.githubusercontent.com/trinitronx/76d2bf98489e5e3e84fa/raw/53885d87f91320b574ca4f7d609e4bb268274f68/start_x11vnc.sh  > ~/bin/start_x11vnc.sh && chmod +x ~/bin/start_x11vnc.sh

С вашего VNC Client host:

ssh -f  -L 5900:127.0.0.1:5900 -p 22 youruser@your-ubuntu-host.example.com '~/bin/start_x11vnc.sh && sleep 10'

Или, с вашего хоста VNC-сервера, запустите:

~/bin/start_x11vnc.sh

через терминал (или запустите его как демон с -forever как услуга init.d , служба ускоренного запуска , systemd unit или, как вы пожелаете)

Теперь запустите свой VNC-клиент

Используйте X11 «Magic Cookie»

Большинство менеджеров отображения X

g5] (например, GDM , XDM , KDM ) запускают начальный сервер X11 и аутентифицируют его с помощью MIT Magic Cookie . В зависимости от вашего диспетчера дисплея волшебный cookie будет найден в одном из разных мест .

Мне посчастливилось получить сеанс VNC на экране входа в Ubuntu GDM * ПРИМЕЧАНИЕ 1., обнаружив волшебный файл cookie с этим скриптом :

#!/bin/bash
DEFAULT_DISPLAY=:0
X11VNC_DISPLAY="$DEFAULT_DISPLAY"

if [ -x /usr/bin/x11vnc ]; then
     [ "$1" == '-nocache' ] && CACHE_FLAG='-noncache' || CACHE_FLAG='-noncache'
     [ "$2" == '-guess' ] && GUESS_FLAG='-auth guess' || GUESS_FLAG=''
         [ -f /root/.vnc/passwd ] && PASSWORD="/root/.vnc/passwd"
         [ -f $HOME/.vnc/passwd ] && PASSWORD="$HOME/.vnc/passwd"
         [ ! -z "$PASSWORD" ] && x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage
    EXIT_CODE=$?
     if [ $EXIT_CODE -ne 0 ]; then

        echo "\n*********************************************************************"
        echo "*** Could not start x11vnc!  Trying again with gdm MAGIC_COOKIE! ***"
        echo "*********************************************************************\n"

        # Old GDM location for Ubuntu <= 17.10
        MAGIC_COOKIE_FILE=`sudo find /var/run/gdm/ -iname database | grep for-gdm`

        # New GDM location for Ubuntu >= 17.10
        [ -z "$MAGIC_COOKIE_FILE" ] && NUM_MAGIC_COOKIE_FILE_SESSIONS=`sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' 2>/dev/null | wc -l`
        if [ -z "$MAGIC_COOKIE_FILE" -a "$NUM_MAGIC_COOKIE_FILE_SESSIONS" -gt 1 ]; then
            # Find the current user's session
            MAGIC_COOKIE_FILE=`sudo find /run/user/$(id -u) -iwholename '*/gdm/*' -iname '*Xauthority'`
            X11VNC_DISPLAY=":1"
        else
            # Find the GDM user's session (or whichever shows up first in ps list)
            # This should pick up the original gdm session which grabs :0
            # If you login after gdm login screen, your Xorg server may end up on another display!
            # Workaround for now is to restart x11vnc on that display number
            [ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE=`sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' | head -n1`
        fi
        # Old lightdm location for Ubuntu <= 17.10
        [ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE=`sudo find /var/lib -name '.Xauthority' -o -wholename '/var/run/lightdm/root/:0' | head -n1`
        #sudo bash -c "[ -z \"$MAGIC_COOKIE_FILE\" -a -e /var/run/lightdm/root/:0 ]" && MAGIC_COOKIE_FILE='/var/run/lightdm/root/:0'
        [ -n "$MAGIC_COOKIE_FILE" -a -z "$GUESS_FLAG" ] && AUTH_COOKIE_FLAG="-auth $MAGIC_COOKIE_FILE"
        [ ! -z "$PASSWORD" ] && sudo x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage ${AUTH_COOKIE_FLAG}
    fi
fi

Я могу запустить этот скрипт (я его назвал start_x11vnc.sh) в любое время через SSH ... даже до входа в систему через gdm. Он запускает сервер x11vnc, который затем я могу подключить к туннелю SSH . (Используйте ssh -L 5900:127.0.0.1:5900 или добавьте LocalForward 5900 127.0.0.1:5900 к записи вашего хоста в ~/.ssh/config).

ПРИМЕЧАНИЕ 1. В некоторых новых дистрибутивах, таких как Ubuntu> = 17.10, сеанс сеанса входа в систему GDM полностью разделен от зарегистрированного пользователя X сеанса. Поэтому необходимо сначала подключиться к сеансу GDM X, войти в систему ... и, наконец, отключиться и снова подключиться к вновь запущенному сеансу X. Почему они теперь делают это так, это тайна, но она сломала старую версию этого скрипта.

5
ответ дан 6 August 2018 в 03:48

Вот как это сделать с VNC, если вы не хотите использовать RDP:

  1. Установить сервер X11VNC: sudo apt-get install x11vnc (или через Ubuntu Software Center -> Сервер X11VNC)
  2. Задайте пароль: sudo mkdir / etc / x11vnc sudo x11vnc -storepasswd / etc / x11vnc / passwd Выберите y , чтобы сохранить пароль.
  3. Создайте пустой файл в / etc / init , названный x11vnc.conf : sudo -H gedit / etc / init / x11vnc.conf
  4. Вставить это в файл: начать в login-session-start exec x11vnc -xkb -forever -auth / var / run / lightdm / root /: 0 -display: 0 -rfbauth / etc / x11vnc / passwd -rfbport 5900 -bg -o /var/log/x11vnc.log
  5. Сохранить и закрыть
  6. Перезагрузите Ubuntu

Вот и все! Теперь вы можете подключиться к любому клиенту VNC еще до входа в систему.

0
ответ дан 6 August 2018 в 03:48

В целом, я бы рекомендовал x11vnc .

TL; DR

apt-get -y install x11vnc
x11vnc -storepasswd

Введите свой пароль, он по умолчанию сохраняется в ~/.vnc/passwd в зашифрованном виде INSECURE. .. защищать его с разрешениями файловой системы)

chmod 600 ~/.vnc/passwd

Сохранить мой вспомогательный скрипт локально:

mkdir ~/bin/
curl https://gist.githubusercontent.com/trinitronx/76d2bf98489e5e3e84fa/raw/53885d87f91320b574ca4f7d609e4bb268274f68/start_x11vnc.sh  > ~/bin/start_x11vnc.sh && chmod +x ~/bin/start_x11vnc.sh

С вашего VNC Client host:

ssh -f  -L 5900:127.0.0.1:5900 -p 22 youruser@your-ubuntu-host.example.com '~/bin/start_x11vnc.sh && sleep 10'

Или, с вашего хоста VNC-сервера, запустите:

~/bin/start_x11vnc.sh

через терминал (или запустите его как демон с -forever как услуга init.d , служба ускоренного запуска , systemd unit или, как вы пожелаете)

Теперь запустите свой VNC-клиент

Используйте X11 «Magic Cookie»

Большинство менеджеров отображения X

g5] (например, GDM , XDM , KDM ) запускают начальный сервер X11 и аутентифицируют его с помощью MIT Magic Cookie . В зависимости от вашего диспетчера дисплея волшебный cookie будет найден в одном из разных мест .

Мне посчастливилось получить сеанс VNC на экране входа в Ubuntu GDM * ПРИМЕЧАНИЕ 1., обнаружив волшебный файл cookie с этим скриптом :

#!/bin/bash
DEFAULT_DISPLAY=:0
X11VNC_DISPLAY="$DEFAULT_DISPLAY"

if [ -x /usr/bin/x11vnc ]; then
     [ "$1" == '-nocache' ] && CACHE_FLAG='-noncache' || CACHE_FLAG='-noncache'
     [ "$2" == '-guess' ] && GUESS_FLAG='-auth guess' || GUESS_FLAG=''
         [ -f /root/.vnc/passwd ] && PASSWORD="/root/.vnc/passwd"
         [ -f $HOME/.vnc/passwd ] && PASSWORD="$HOME/.vnc/passwd"
         [ ! -z "$PASSWORD" ] && x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage
    EXIT_CODE=$?
     if [ $EXIT_CODE -ne 0 ]; then

        echo "\n*********************************************************************"
        echo "*** Could not start x11vnc!  Trying again with gdm MAGIC_COOKIE! ***"
        echo "*********************************************************************\n"

        # Old GDM location for Ubuntu <= 17.10
        MAGIC_COOKIE_FILE=`sudo find /var/run/gdm/ -iname database | grep for-gdm`

        # New GDM location for Ubuntu >= 17.10
        [ -z "$MAGIC_COOKIE_FILE" ] && NUM_MAGIC_COOKIE_FILE_SESSIONS=`sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' 2>/dev/null | wc -l`
        if [ -z "$MAGIC_COOKIE_FILE" -a "$NUM_MAGIC_COOKIE_FILE_SESSIONS" -gt 1 ]; then
            # Find the current user's session
            MAGIC_COOKIE_FILE=`sudo find /run/user/$(id -u) -iwholename '*/gdm/*' -iname '*Xauthority'`
            X11VNC_DISPLAY=":1"
        else
            # Find the GDM user's session (or whichever shows up first in ps list)
            # This should pick up the original gdm session which grabs :0
            # If you login after gdm login screen, your Xorg server may end up on another display!
            # Workaround for now is to restart x11vnc on that display number
            [ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE=`sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' | head -n1`
        fi
        # Old lightdm location for Ubuntu <= 17.10
        [ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE=`sudo find /var/lib -name '.Xauthority' -o -wholename '/var/run/lightdm/root/:0' | head -n1`
        #sudo bash -c "[ -z \"$MAGIC_COOKIE_FILE\" -a -e /var/run/lightdm/root/:0 ]" && MAGIC_COOKIE_FILE='/var/run/lightdm/root/:0'
        [ -n "$MAGIC_COOKIE_FILE" -a -z "$GUESS_FLAG" ] && AUTH_COOKIE_FLAG="-auth $MAGIC_COOKIE_FILE"
        [ ! -z "$PASSWORD" ] && sudo x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage ${AUTH_COOKIE_FLAG}
    fi
fi

Я могу запустить этот скрипт (я его назвал start_x11vnc.sh) в любое время через SSH ... даже до входа в систему через gdm. Он запускает сервер x11vnc, который затем я могу подключить к туннелю SSH . (Используйте ssh -L 5900:127.0.0.1:5900 или добавьте LocalForward 5900 127.0.0.1:5900 к записи вашего хоста в ~/.ssh/config).

ПРИМЕЧАНИЕ 1. В некоторых новых дистрибутивах, таких как Ubuntu> = 17.10, сеанс сеанса входа в систему GDM полностью разделен от зарегистрированного пользователя X сеанса. Поэтому необходимо сначала подключиться к сеансу GDM X, войти в систему ... и, наконец, отключиться и снова подключиться к вновь запущенному сеансу X. Почему они теперь делают это так, это тайна, но она сломала старую версию этого скрипта.

5
ответ дан 7 August 2018 в 21:44

Вот как это сделать с VNC, если вы не хотите использовать RDP:

  1. Установить сервер X11VNC: sudo apt-get install x11vnc (или через Ubuntu Software Center -> Сервер X11VNC)
  2. Задайте пароль: sudo mkdir / etc / x11vnc sudo x11vnc -storepasswd / etc / x11vnc / passwd Выберите y , чтобы сохранить пароль.
  3. Создайте пустой файл в / etc / init , названный x11vnc.conf : sudo -H gedit / etc / init / x11vnc.conf
  4. Вставить это в файл: начать в login-session-start exec x11vnc -xkb -forever -auth / var / run / lightdm / root /: 0 -display: 0 -rfbauth / etc / x11vnc / passwd -rfbport 5900 -bg -o /var/log/x11vnc.log
  5. Сохранить и закрыть
  6. Перезагрузите Ubuntu

Вот и все! Теперь вы можете подключиться к любому клиенту VNC еще до входа в систему.

0
ответ дан 7 August 2018 в 21:44

В целом, я бы рекомендовал x11vnc .

TL; DR

apt-get -y install x11vnc
x11vnc -storepasswd

Введите свой пароль, он по умолчанию сохраняется в ~/.vnc/passwd в зашифрованном виде INSECURE. .. защищать его с разрешениями файловой системы)

chmod 600 ~/.vnc/passwd

Сохранить мой вспомогательный скрипт локально:

mkdir ~/bin/
curl https://gist.githubusercontent.com/trinitronx/76d2bf98489e5e3e84fa/raw/53885d87f91320b574ca4f7d609e4bb268274f68/start_x11vnc.sh  > ~/bin/start_x11vnc.sh && chmod +x ~/bin/start_x11vnc.sh

С вашего VNC Client host:

ssh -f  -L 5900:127.0.0.1:5900 -p 22 youruser@your-ubuntu-host.example.com '~/bin/start_x11vnc.sh && sleep 10'

Или, с вашего хоста VNC-сервера, запустите:

~/bin/start_x11vnc.sh

через терминал (или запустите его как демон с -forever как услуга init.d , служба ускоренного запуска , systemd unit или, как вы пожелаете)

Теперь запустите свой VNC-клиент

Используйте X11 «Magic Cookie»

Большинство менеджеров отображения X

g5] (например, GDM , XDM , KDM ) запускают начальный сервер X11 и аутентифицируют его с помощью MIT Magic Cookie . В зависимости от вашего диспетчера дисплея волшебный cookie будет найден в одном из разных мест .

Мне посчастливилось получить сеанс VNC на экране входа в Ubuntu GDM * ПРИМЕЧАНИЕ 1., обнаружив волшебный файл cookie с этим скриптом :

#!/bin/bash
DEFAULT_DISPLAY=:0
X11VNC_DISPLAY="$DEFAULT_DISPLAY"

if [ -x /usr/bin/x11vnc ]; then
     [ "$1" == '-nocache' ] && CACHE_FLAG='-noncache' || CACHE_FLAG='-noncache'
     [ "$2" == '-guess' ] && GUESS_FLAG='-auth guess' || GUESS_FLAG=''
         [ -f /root/.vnc/passwd ] && PASSWORD="/root/.vnc/passwd"
         [ -f $HOME/.vnc/passwd ] && PASSWORD="$HOME/.vnc/passwd"
         [ ! -z "$PASSWORD" ] && x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage
    EXIT_CODE=$?
     if [ $EXIT_CODE -ne 0 ]; then

        echo "\n*********************************************************************"
        echo "*** Could not start x11vnc!  Trying again with gdm MAGIC_COOKIE! ***"
        echo "*********************************************************************\n"

        # Old GDM location for Ubuntu <= 17.10
        MAGIC_COOKIE_FILE=`sudo find /var/run/gdm/ -iname database | grep for-gdm`

        # New GDM location for Ubuntu >= 17.10
        [ -z "$MAGIC_COOKIE_FILE" ] && NUM_MAGIC_COOKIE_FILE_SESSIONS=`sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' 2>/dev/null | wc -l`
        if [ -z "$MAGIC_COOKIE_FILE" -a "$NUM_MAGIC_COOKIE_FILE_SESSIONS" -gt 1 ]; then
            # Find the current user's session
            MAGIC_COOKIE_FILE=`sudo find /run/user/$(id -u) -iwholename '*/gdm/*' -iname '*Xauthority'`
            X11VNC_DISPLAY=":1"
        else
            # Find the GDM user's session (or whichever shows up first in ps list)
            # This should pick up the original gdm session which grabs :0
            # If you login after gdm login screen, your Xorg server may end up on another display!
            # Workaround for now is to restart x11vnc on that display number
            [ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE=`sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' | head -n1`
        fi
        # Old lightdm location for Ubuntu <= 17.10
        [ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE=`sudo find /var/lib -name '.Xauthority' -o -wholename '/var/run/lightdm/root/:0' | head -n1`
        #sudo bash -c "[ -z \"$MAGIC_COOKIE_FILE\" -a -e /var/run/lightdm/root/:0 ]" && MAGIC_COOKIE_FILE='/var/run/lightdm/root/:0'
        [ -n "$MAGIC_COOKIE_FILE" -a -z "$GUESS_FLAG" ] && AUTH_COOKIE_FLAG="-auth $MAGIC_COOKIE_FILE"
        [ ! -z "$PASSWORD" ] && sudo x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage ${AUTH_COOKIE_FLAG}
    fi
fi

Я могу запустить этот скрипт (я его назвал start_x11vnc.sh) в любое время через SSH ... даже до входа в систему через gdm. Он запускает сервер x11vnc, который затем я могу подключить к туннелю SSH . (Используйте ssh -L 5900:127.0.0.1:5900 или добавьте LocalForward 5900 127.0.0.1:5900 к записи вашего хоста в ~/.ssh/config).

ПРИМЕЧАНИЕ 1. В некоторых новых дистрибутивах, таких как Ubuntu> = 17.10, сеанс сеанса входа в систему GDM полностью разделен от зарегистрированного пользователя X сеанса. Поэтому необходимо сначала подключиться к сеансу GDM X, войти в систему ... и, наконец, отключиться и снова подключиться к вновь запущенному сеансу X. Почему они теперь делают это так, это тайна, но она сломала старую версию этого скрипта.

5
ответ дан 10 August 2018 в 09:57

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

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