Ich versuche eine Remote-Gnome-Sitzung zu starten mit: ssh -X [email protected] gnome-session
Sowohl Client als auch Server sind Ubuntu Version 12.04
Ich bekomme folgendes (und es passiert nicht viel) ...
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
Antworten:
Ich gehe davon aus, dass Sie versuchen, eine vollständige Remote-Gnome-Sitzung zu starten, die auf Ihrem lokalen Computer angezeigt wird. Dies schlägt fehl, da Sie bereits einen lokalen Sitzungsmanager haben, der die Anzeige Ihres X-Servers steuert.
Ihre Möglichkeiten sind:
Starten Sie einfach einzelne Remote-Anwendungen mit
ssh -X [email protected] xclock
Vorausgesetzt, XDMCP ist auf dem Remotecomputer aktiviert ...
2a. Verwenden Sie
Xnest -query 192.168.1.107 -geometry 1024x768 :1
diese Option , um eine Remote-Anmeldesitzung in einem lokalen Fenster zu starten.2b. Verwenden Sie
Xephyr :1 -screen 1024x768 -query 192.168.1.107
einen besseren X-Server alsXnest
Nehmen Sie auch XDMCP auf dem Remote-Computer an, und konfigurieren Sie Ihren lokalen Computer so, dass beim Start die XDMCP-Auswahl anstelle des Standard-Begrüßers verwendet wird.
Das Aktivieren von XDMCP ist einfach ein Putting
in
/etc/gdm/custom.conf
und Neustartgdm
oder Neustart (vorausgesetzt, Sie laufengdm
).Wenn Sie nur einige Anwendungen remote ausführen möchten, ist Option 1 am einfachsten und verwendet weiterhin den SSH-verschlüsselten Datenverkehr, den keiner der anderen verwendet (daher werden sie am besten nur in einem vertrauenswürdigen lokalen Netzwerk verwendet).
Wenn Sie etwas komplizierteres tun müssen, ist 2b (Xephyr) vielleicht besser, aber ich habe in der Regel festgestellt, dass die Verwendung
ssh -X ... &
mehrerer Remoteanwendungen ausreichend ist.Wenn Sie alles remote ausführen, dh der lokale Computer nur ein Anzeigeserver ist und selbst nichts ausführt, müssen Sie Option 3 verwenden, um den XDMCP-Choser anstelle der Standardanmeldung zu starten.
PS: Wie in den Kommentaren erwähnt, handelt es sich bei beiden
Xnest
undXephyr
um Anwendungen, die das X-Server-Protokoll verarbeiten und die gesamte Sitzung in einem Fenster anzeigen.Xnest
Verwendet die vom lokalen X-Server bereitgestellten Funktionen,Xephyr
verarbeitet jedoch viel mehr des Serverprotokolls selbst und ist daher robuster. Sie werden möglicherweise nicht standardmäßig installiert, da der durchschnittliche Benutzer sie nicht verwenden würde.PPS: Nach einigem Überlegen ist es offensichtlich, wie man eine
Xephyr
oder eineXnest
Sitzung verschlüsselt ...quelle
ssh -Y
ein Terminal und starte dann, was ich von dort brauche.Für den Fall, dass Sie jemals von einem Terminal aus lernen möchten, den Standard-SSH zu verwenden, würde ich Ihnen einen kurzen Überblick geben, da Sie anscheinend Probleme mit der Verwendung von SSH-Schlüsseln hatten. Der Vorteil ist, dass es universeller und sehr flexibel ist.
Um ssh-Schlüssel zu verwenden, die sicherer, manchmal erforderlich und praktischer sind, da Sie den Schlüssel nur einmal eingeben müssen, müssen Sie dies einmal für jeden entfernten ssh-Server tun:
Schlüssel generieren (kann bei Bedarf dsa anstelle von rsa verwenden)
Übertragen Sie den Schlüssel zum Remote-Host
Wenn es sich nicht um Standard-Port 22 handelt, verwenden Sie Folgendes: Beachten Sie die Anführungszeichen um das Argument
Wenn Sie dsa verwenden, gibt es einen etwas anderen Befehl: das Hinzufügen
-i <homedirectory>/.ssh/id_dsa
Irgendwann danach müssen Sie ein Passwort eingeben, das sich von Ihrem normalen Login-Passwort unterscheidet. Es ist eine Weile her und ich habe die genaue Reihenfolge vergessen, aber es sollte offensichtlich sein. Wenn Sie sich zum ersten Mal verbinden, werden Sie einmal nach diesem Kennwort gefragt. Ich benutze den gleichen Anmeldenamen, so dass ich den Benutzernamen nicht eingeben muss (er setzt den gleichen wie der entfernte Benutzername voraus). Außerdem können Sie für Server in Ihrem LAN ".local" anstelle der IP-Adresse eingeben, glaube ich (funktioniert bei mir).
Sie können sogar ein entferntes Dateisystem mit sshfs mounten (vorausgesetzt, sshfs ist installiert). Ersetzen Sie den lokalen Mount-Pfad durch einen Verzeichnispfad:
sshfs remote-host: local-mount-directory
(unmount using
fusermount -u local-mount-directory
)Ich denke, dass es Ihr Ausgangsverzeichnis standardmäßig verwendet, wenn Sie das lokale Einhängeverzeichnis weglassen. `
Das Kopieren von Dateien kann mit scp erfolgen.
quelle