Удаленный x-сервер с ssh -X

Я пытаюсь запустить сеанс удаленного гнома, используя: ssh -X username@192.168.1.107 gnome-session

И клиент, и сервер являются Ubuntu версии 12.04

Я получаю следующее (и не так много происходит) .. .

GNOME_KEYRING_CONTROL=/tmp/keyring-3aeNAh
GPG_AGENT_INFO=/tmp/keyring-3aeNAh/gpg:0:1
GNOME_KEYRING_PID=3573
GNOME_KEYRING_CONTROL=/tmp/keyring-3aeNAh
GPG_AGENT_INFO=/tmp/keyring-3aeNAh/gpg:0:1
GNOME_KEYRING_CONTROL=/tmp/keyring-3aeNAh
GPG_AGENT_INFO=/tmp/keyring-3aeNAh/gpg:0:1
SSH_AUTH_SOCK=/tmp/keyring-3aeNAh/ssh
GNOME_KEYRING_CONTROL=/tmp/keyring-3aeNAh
GPG_AGENT_INFO=/tmp/keyring-3aeNAh/gpg:0:1
SSH_AUTH_SOCK=/tmp/keyring-3aeNAh/ssh

(gnome-settings-daemon:3572): color-plugin-WARNING **: failed to get contents of /sys/class/dmi/id/board_version: Failed to open file '/sys/class/dmi/id/board_version': No such file or directory

** (gnome-settings-daemon:3572): WARNING **: You can only run one xsettings manager at a time; exiting

** (gnome-settings-daemon:3572): WARNING **: Unable to start xsettings manager: Could not initialize xsettings manager.
compiz (core) - Error: Screen 0 on display "localhost:10.0" already has a window manager; try using the --replace option to replace the current window manager.
Initializing nautilus-gdu extension
Created new window in existing browser session.
** Message: applet now removed from the notification area
** Message: using fallback from indicator to GtkStatusIcon

(gnome-settings-daemon:3572): keyboard-plugin-WARNING **: Failed to set the keyboard layouts: GDBus.Error:org.freedesktop.Accounts.Error.PermissionDenied: Not authorized

** (gnome-settings-daemon:3572): WARNING **: Failed to connect context: Connection refused

(gnome-settings-daemon:3572): clipboard-plugin-WARNING **: Clipboard manager is already running.

(gnome-settings-daemon:3572): color-plugin-WARNING **: failed to create device: GDBus.Error:org.freedesktop.ColorManager.Failed: failed to obtain org.freedesktop.color-manager.create-device auth

(gnome-settings-daemon:3572): color-plugin-WARNING **: GDBus.Error:org.freedesktop.ColorManager.Failed: failed to obtain org.freedesktop.color-manager.create-profile auth

(gnome-settings-daemon:3572): color-plugin-WARNING **: no xrandr-Samsung Electric Company-SAMSUNG device found: Failed to find output xrandr-Samsung Electric Company-SAMSUNG
Shutting down nautilus-gdu extension

** (gnome-settings-daemon:3572): WARNING **: Failed to connect context: Connection refused
Connection failure: Connection refused
pa_context_connect() failed: Connection refused
12
задан 18 April 2014 в 06:18

2 ответа

Я предполагаю, что то, что Вы пытаетесь сделать, является запуском полная удаленная сессия Gnome, отображающаяся на Вашей локальной машине. Это перестало работать, потому что у Вас уже есть локальный менеджер сеансов, управляющий Вашим дисплеем X-сервера.

Ваши опции:

  1. Просто запускают отдельные удаленные приложения с помощью ssh -X user@192.168.1.107 xclock

  2. Предположение, что XDMCP включен на удаленной машине...

    2a. Используйте Xnest -query 192.168.1.107 -geometry 1024x768 :1 для запуска сессии удаленного входа в систему в локальном окне.

    2b. Используйте Xephyr :1 -screen 1024x768 -query 192.168.1.107, который является лучшим X-сервером, чем Xnest

  3. Также принятие XDMCP на удаленной машине, настройте свою локальную машину для использования селектора XDMCP вместо типичной зазывалы на запуске.

Включение XDMCP является просто случаем помещения

[xdmcp]
Enable=true

в /etc/gdm/custom.conf и перезапуск gdm или перезагрузка (предполагающий, что Вы работаете gdm).

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

, Если Вам нужно к так чему-то более сложному, затем 2b (Xephyr), может быть лучше, но я обычно находил просто использование ssh -X ... &, чтобы соответствовали несколько удаленных приложений.

, Если Вы делаете, все удаленно, т.е. локальная машина является просто сервером дисплея и ничего не делает самого, затем необходимо изучить использование опции 3, запустив селектора XDMCP вместо стандартного входа в систему.

<час>

пз: Как отмечено в комментариях, и Xnest и Xephyr приложения, которые обрабатывают протокол X-сервера и помещают всю сессию в окно. Xnest использование функции, обеспеченные локальным X-сервером, в то время как Xephyr дескрипторы намного больше самого протокола сервера также - более устойчиво. Они не могут быть установлены по умолчанию, потому что средний пользователь не использовал бы их.

<час>

PPS: После того, как немного думало, что очевидно, как зашифровать Xephyr или Xnest сессия...

ssh -X username@192.168.1.107 Xephyr :1 -query localhost -screen 1280x1024
12
ответ дан 18 April 2014 в 06:18

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

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

генерируют ключ (может использовать dsa вместо rsa, при необходимости)

ssh-keygen -t rsa    

передают ключ к удаленному хосту

ssh-copy-id <username>@<host>

, если не стандартный порт 22, используйте это: Отметьте кавычки вокруг аргумента

ssh-copy-id "<username>@<host> -p <port_nr>"

При использовании dsa, существует немного отличающаяся команда, добавляя -i <homedirectory>/.ssh/id_dsa

Где-нибудь после этого необходимо будет ввести пароль, который является отдельным от нормального пароля входа в систему. Это было некоторое время, и я забыл точную последовательность, но это должно быть очевидно. Затем в первый раз, когда Вы соединяетесь, Вас попросят этого пароля однажды. Я использую то же имя для входа в систему, таким образом, я не должен вводить имя пользователя (оно принимает то же как удаленное имя пользователя). Кроме того, для серверов на Вашей LAN можно ввести ".local" вместо IP-адреса, я верю (работы для меня).

можно даже смонтироваться, удаленная файловая система с помощью sshfs (принимающий sshfs установлен); замените путем к каталогу local-mount-directory:

sshfs remote-host: local-mount-directory

(размонтирование с помощью fusermount -u local-mount-directory)

я думаю, что оно будет использовать корневой каталог по умолчанию, если Вы бросите local-mount-directory'.

Копирование файлов может быть сделано с scp.

0
ответ дан 18 April 2014 в 06:18

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

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