Próbuję rozpocząć zdalną sesję gnome przy użyciu: ssh -X [email protected] gnome-session
Zarówno klient, jak i serwer to Ubuntu w wersji 12.04
Dostaję następujące (i niewiele się dzieje) ...
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
Odpowiedzi:
Zakładam, że to, co próbujesz zrobić, to rozpocząć pełną zdalną sesję Gnome wyświetlaną na twoim komputerze lokalnym. Nie udaje się to, ponieważ masz już lokalnego menedżera sesji sterującego wyświetlaniem serwera X.
Twoje opcje to:
Wystarczy uruchomić poszczególne zdalne aplikacje za pomocą
ssh -X [email protected] xclock
Zakładając, że XDMCP jest włączony na zdalnym komputerze ...
2a. Służy
Xnest -query 192.168.1.107 -geometry 1024x768 :1
do uruchamiania zdalnej sesji logowania w lokalnym oknie.2b. Użyj
Xephyr :1 -screen 1024x768 -query 192.168.1.107
lepszego serwera X niżXnest
Zakładając również XDMCP na komputerze zdalnym, skonfiguruj komputer lokalny, aby używał selektora XDMCP zamiast standardowego programu uruchamiającego podczas uruchamiania.
Włączenie XDMCP to po prostu kwestia wprowadzenia
in
/etc/gdm/custom.conf
i restartowaniegdm
lub restartowanie (zakładając, że jesteś uruchomionygdm
).Jeśli zamierzasz uruchamiać tylko kilka aplikacji zdalnie, wówczas opcja 1 jest najprostsza i nadal używa szyfrowanego ruchu SSH, czego nie robią żadne inne (więc najlepiej używać ich tylko w zaufanej sieci lokalnej).
Jeśli potrzebujesz czegoś bardziej skomplikowanego, może być lepszy 2b (Xephyr), ale zwykle uważam, że wystarczające jest używanie
ssh -X ... &
wielu zdalnych aplikacji.Jeśli robisz wszystko zdalnie, tzn. Komputer lokalny jest tylko serwerem wyświetlającym i sam nic nie robi, musisz skorzystać z opcji 3, uruchamiając selektor XDMCP zamiast standardowego logowania.
PS: Jak zauważył w komentarzach, jak
Xnest
iXephyr
to aplikacje obsługujące protokół serwera X i umieścić całą sesję w oknie.Xnest
korzysta z funkcji udostępnianych przez lokalny serwer X iXephyr
obsługuje znacznie więcej samego protokołu serwera, dzięki czemu jest bardziej niezawodny. Nie mogą być instalowane domyślnie, ponieważ przeciętny użytkownik ich nie używałby.PPS: Po krótkiej przemyśleniu oczywiste jest, jak zaszyfrować sesję
Xephyr
lubXnest
...źródło
ssh -Y
z terminala, a następnie uruchamiam to, czego potrzebuję.Na wypadek, gdybyś chciał nauczyć się korzystać ze standardowego ssh z terminala, pomyślałem, że dam ci krótkie podsumowanie, ponieważ wydaje się, że miałeś problemy z używaniem kluczy ssh. Zaletą jest to, że jest bardziej uniwersalny i bardzo elastyczny.
Aby użyć kluczy ssh, które są bezpieczniejsze, czasem wymagane i wygodniejsze, ponieważ wystarczy wprowadzić klucz tylko raz, musisz to zrobić raz dla dowolnego zdalnego serwera ssh:
wygeneruj klucz (w razie potrzeby można użyć dsa zamiast rsa)
przenieś klucz do zdalnego hosta
jeśli nie jest to standardowy port 22, użyj tego: Uwaga: cytat wokół argumentu
Jeśli używasz dsa, istnieje nieco inna komenda, dodawanie
-i <homedirectory>/.ssh/id_dsa
Gdzieś po tym będziesz musiał wprowadzić hasło, które jest inne niż normalne hasło logowania. Minęło trochę czasu i zapomniałem o dokładnej sekwencji, ale powinno to być oczywiste. Następnie przy pierwszym połączeniu zostaniesz poproszony o podanie tego hasła. Używam tej samej nazwy logowania, więc nie muszę wprowadzać nazwy użytkownika (przyjmuje ona taką samą nazwę jak nazwa użytkownika zdalnego). Ponadto w przypadku serwerów w sieci LAN można wprowadzić „.local” zamiast adresu IP (jak dla mnie działa).
Możesz nawet zamontować zdalny system plików za pomocą sshfs (zakładając, że sshfs jest zainstalowany); zastąp ścieżkę katalogu do lokalnego katalogu montowania:
sshfs remote-host: local-mount-directory
(odmontować za pomocą
fusermount -u local-mount-directory
)Myślę, że domyślnie użyje twojego katalogu domowego, jeśli opuścisz lokalny katalog montowania. `
Kopiowanie plików można wykonać za pomocą scp.
źródło