Как удаленно войти в систему с полным графическим рабочим столом через X11


8

У меня есть две машины, обе работают под управлением kubuntu: сервер и клиент. Я хотел бы подключиться к серверу с клиента и запустить полный графический интерфейс, не опасаясь, что некоторые команды будут выполняться от имени клиента.

Итак, ssh -XCработает, и я также могу запускать графические программы из него просто отлично.

Однако, когда я startkdeпечатаю в консоли ssh, он говорит: «Кажется, KDE уже работает на этом дисплее». Что верно, но не для той же учетной записи пользователя.

Я попытался выйти из графического интерфейса и войти в систему из tty, но тогда (что неудивительно) не удалось запустить какие-либо графические программы, включая kde.

Как тогда я могу сделать это так, чтобы я мог просто войти в систему так же, как я вхожу в систему с локальным пользователем? Используйте клиентский компьютер как тупой терминал.

Ответы:


12

XDMCP предназначен для этого. На вашем сервере вам нужно включить поддержку XDMCP в вашем менеджере рабочего стола:

  • если вы используете kdm, ищите

    [Xdmcp]
    Enable=false
    

    в конце kdmrcперейдите falseна trueи перезапустите kdm;

  • если вы используете lightdm, добавьте

    [XDMCPServer]
    enabled=true
    port=177
    

    чтобы /etc/lightdm/lightdm.confи перезагрузка lightdm.

Затем на вашем клиенте запустите X, используя

X -query ${SERVER_IP}

(с соответствующим IP-адресом), и экран входа вашего сервера должен появиться на вашем клиенте.


спасибо, именно то, что мне было нужно. Забавный дядя Джи не нашел его, и мне пришлось спросить.
Вели

2
Это работает, но XDMCP означает, что вы используете простой протокол X11, который не поддерживает шифрование. Если это проблема, вам нужно искать другие решения
Wouter Verhelst

4

Вы можете включить сервер VNC

Настройки> Общий доступ> Общий экран

Затем прокси перешлите 5900 через ssh на ваш компьютер, если вам нужно использовать ssh.

ssh -L 5900:localhost:5900 #destination here

затем используйте клиент Remote Desktop (RD), такой как Remina, для подключения к локальному ssh-прокси;

Connect> 127.0.0.1:5900

Обязательно изучите ошибки безопасности VNC, прежде чем использовать его. VNC должен быть довольно безопасен, если вы используете туннелирование через ssh. Этот метод будет работать только в том случае, если у вас есть пользователь, вошедший в систему. Чтобы заставить его работать без входа в систему, вам нужно будет войти в ssh, запустить сервер VNC и указать, какой дисплей использовать IE 0, 1, 2 и затем подключитесь к нему с помощью Remina или чего-то еще откуда угодно.


Я установил x11vnc на Ubuntu. Так что, если ни один пользователь не вошел в систему, то команда для запуска x11vnc x11vnc displaynumber:1это правильно?
ART

3

Вы можете запустить оконный менеджер через сеанс SSH, но вам нужно убедиться, что ваш X-сервер уже не запускает оконный менеджер.

Это может быть достигнуто двумя способами:

  1. Делайте все вручную, а не с startxпомощью диспетчера отображения:

    Сначала запустите ваш X-сервер:

    X -nolisten tcp :0
    

    Теперь перейдите на другую виртуальную консоль (например, нажмите Ctrl + Alt + F2) и введите:

    DISPLAY=:0 ssh -XC <host> startkde
    

    Теперь вернитесь к первой виртуальной консоли и используйте ваш сеанс X в обычном режиме. Недостатком этого метода является то, что он не включает xauthнастройку (так что теоретически каждый на удаленной машине сможет подключиться к вашему сеансу X, что представляет угрозу безопасности); Вы можете добавить это.

  2. Используйте .xinitrc(для startx) или .xsession(для менеджеров отображения) файлы, чтобы изменить ваш оконный менеджер:

    Если вы настроили свою систему так, чтобы SSH работал без пароля (например, с помощью ключей ssh, или с помощью Kerberos или другого механизма аутентификации), вы можете добавить следующую строку в качестве последней строки в вашем файле .xinitrcили .xsessionфайлах:

    exec ssh -XC <host> startkde
    

    Следует помнить, что все, что вы добавляете в эти файлы, будет выполняться вместо вашей обычной настройки сеанса X11. В некоторых случаях вам может потребоваться выбрать «стандартный Xsession» на экране входа в систему.

    Даже если у вас нет SSH без пароля, это может сработать, если вы ssh-askpassустановили. Если sshопределяет , что он не имеет управляющего терминала , но это действительно имеет $DISPLAYнабор переменных, он будет использовать, чтобы задать пароль.

    Недостатком этого метода является то, что становится труднее войти на «локальный» компьютер.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.