Я пытаюсь запустить сеанс удаленного гнома с помощью: 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
Ответы:
Я предполагаю, что вы пытаетесь запустить полный сеанс удаленного просмотра Gnome на вашем локальном компьютере. Это терпит неудачу, потому что у вас уже есть локальный менеджер сеанса, управляющий отображением вашего X-сервера.
Ваши варианты:
Просто запустите отдельные удаленные приложения, используя
ssh -X user@192.168.1.107 xclock
Предполагая, что XDMCP включен на удаленной машине ...
2а. Используйте
Xnest -query 192.168.1.107 -geometry 1024x768 :1
для запуска сеанса удаленного входа в локальное окно.2b. Используйте
Xephyr :1 -screen 1024x768 -query 192.168.1.107
лучший сервер X, чемXnest
Также предполагая XDMCP на удаленном компьютере, настройте локальный компьютер на использование переключателя XDMCP вместо стандартного приветствия при запуске.
Включение XDMCP - это просто случай
в
/etc/gdm/custom.conf
и перезапускаgdm
или перезагрузки (если вы работаетеgdm
).Если вы собираетесь запускать только несколько приложений удаленно, то вариант 1 является наиболее простым и продолжает использовать зашифрованный трафик SSH, чего не делают другие (поэтому их лучше всего использовать только в доверенной локальной сети).
Если вам нужно что-то более сложное, то 2b (Xephyr) может быть лучше, но я обычно считаю достаточным использование только
ssh -X ... &
нескольких удаленных приложений.Если вы все делаете удаленно, то есть локальный компьютер - это просто сервер отображения и ничего не делает сам по себе, тогда вам нужно использовать вариант 3, запускающий средство выбора XDMCP вместо стандартного входа в систему.
PS: Как отмечено в комментариях, оба
Xnest
иXephyr
являются приложениями, которые обрабатывают протокол X-сервера и помещают весь сеанс в окно.Xnest
использует функции, предоставляемые локальным X-сервером, и в то же времяXephyr
обрабатывает гораздо больше самого протокола сервера, поэтому является более надежным. Они не могут быть установлены по умолчанию, потому что средний пользователь не будет их использовать.PPS: После небольшого размышления становится очевидным, как зашифровать
Xephyr
илиXnest
сеанс ...источник
ssh -Y
из терминала, а затем запустить то, что мне нужно оттуда.Если вы когда-нибудь захотите научиться использовать стандартный ssh из терминала, я подумаю, что дам вам краткое изложение, так как, похоже, у вас возникли проблемы с использованием ключей ssh. Преимущество в том, что он более универсальный и очень гибкий.
Чтобы использовать ssh-ключи, которые более безопасны, иногда требуются и более удобны, поскольку вам нужно ввести ключ только один раз, вам нужно сделать это один раз для любого удаленного ssh-сервера:
генерировать ключ (при необходимости можно использовать dsa вместо rsa)
передать ключ на удаленный хост
если не стандартный порт 22, используйте это: Примечание кавычки вокруг аргумента
Если используется dsa, есть немного другая команда, добавляющая
-i <homedirectory>/.ssh/id_dsa
Где-то после этого вам нужно будет ввести пароль, который отличается от вашего обычного пароля для входа. Это было давно, и я забыл точную последовательность, но это должно быть очевидно. Затем при первом подключении вам будет предложено ввести пароль один раз. Я использую то же имя для входа, поэтому мне не нужно вводить имя пользователя (оно предполагает то же самое, что и удаленное имя пользователя). Кроме того, для серверов вашей локальной сети вы можете ввести «.local» вместо IP-адреса, я считаю (работает для меня).
Вы даже можете смонтировать удаленную файловую систему, используя sshfs (при условии, что sshfs установлен); подставьте путь к каталогу для local-mount-directory:
sshfs remote-host: local-mount-directory
(размонтировать используя
fusermount -u local-mount-directory
)Я думаю, что он будет использовать ваш домашний каталог по умолчанию, если вы не включите local-mount-directory. `
Копирование файлов может быть сделано с помощью scp.
источник