J'essaie de démarrer une session de gnome à distance en utilisant: ssh -X [email protected] gnome-session
Le client et le serveur sont tous les deux Ubuntu version 12.04
Je reçois ce qui suit (et il ne se passe pas grand-chose) ...
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
Réponses:
Je suppose que ce que vous essayez de faire est de démarrer une session Gnome distante complète qui s'affiche sur votre machine locale. Cela échoue car vous disposez déjà d'un gestionnaire de session local contrôlant l'affichage de votre serveur X.
Vos options sont:
Démarrez simplement des applications distantes individuelles à l'aide de
ssh -X [email protected] xclock
En supposant que XDMCP est activé sur la machine distante ...
2a. Permet
Xnest -query 192.168.1.107 -geometry 1024x768 :1
de démarrer une session de connexion à distance dans une fenêtre locale.2b. Utilisez
Xephyr :1 -screen 1024x768 -query 192.168.1.107
ce qui est un meilleur serveur X queXnest
En supposant également XDMCP sur la machine distante, configurez votre machine locale pour utiliser le sélecteur XDMCP au lieu de l'accueilleur standard au démarrage.
L'activation de XDMCP consiste simplement à mettre
dans
/etc/gdm/custom.conf
et redémarrergdm
ou redémarrer ( en supposant que vous utilisezgdm
).Si vous ne souhaitez exécuter que quelques applications à distance, l'option 1 est la plus simple et continue d'utiliser le trafic chiffré SSH, ce qu'aucun des autres ne fait (il est donc préférable de les utiliser uniquement sur un réseau local de confiance).
Si vous avez besoin de quelque chose de plus compliqué, alors 2b (Xephyr) est peut-être mieux, mais j'ai généralement trouvé que l'utilisation
ssh -X ... &
de plusieurs applications distantes était adéquate.Si vous faites tout à distance, c'est-à-dire que la machine locale n'est qu'un serveur d'affichage et ne fait rien elle-même, alors vous devez examiner l'option 3, en démarrant le sélecteur XDMCP au lieu de la connexion standard.
PS: Comme indiqué dans les commentaires, les deux
Xnest
etXephyr
sont des applications qui gèrent le protocole du serveur X et mettent la session entière dans une fenêtre.Xnest
utilise les fonctions fournies par le serveur X local tout enXephyr
gérant beaucoup plus le protocole du serveur lui-même, il est donc plus robuste. Ils peuvent ne pas être installés par défaut car l'utilisateur moyen ne les utiliserait pas.PPS: Après un peu de réflexion, il est évident de chiffrer une session
Xephyr
ouXnest
...la source
ssh -Y
partir d'un terminal, puis exécute ce dont j'ai besoin à partir de là.Au cas où vous voudriez apprendre à utiliser le ssh standard à partir d'un terminal, je pensais que je vous donnerais un bref aperçu, car vous avez eu du mal à utiliser les clés ssh, semble-t-il. L'avantage est qu'il est plus universel et très flexible.
Pour utiliser les clés ssh, qui sont plus sécurisées, parfois nécessaires et plus pratiques car vous n'avez besoin de saisir la clé qu'une seule fois, vous devez le faire une fois pour tout serveur ssh distant:
générer une clé (peut utiliser dsa au lieu de rsa, si nécessaire)
transférer la clé vers l'hôte distant
si ce n'est pas le port standard 22, utilisez ceci: notez les guillemets autour de l'argument
Si vous utilisez dsa, il existe une commande légèrement différente, ajoutant
-i <homedirectory>/.ssh/id_dsa
Quelque part après cela, vous devrez entrer un mot de passe, qui est distinct de votre mot de passe de connexion normal. Cela fait un moment et j'ai oublié la séquence exacte, mais cela devrait être évident. Ensuite, la première fois que vous vous connectez, il vous sera demandé une fois ce mot de passe. J'utilise le même nom de connexion, donc je n'ai pas besoin d'entrer le nom d'utilisateur (il suppose la même chose que le nom d'utilisateur distant). En outre, pour les serveurs de votre réseau local, vous pouvez entrer ".local" au lieu de l'adresse IP, je crois (fonctionne pour moi).
Vous pouvez même monter un système de fichiers distant en utilisant sshfs (en supposant que sshfs est installé); substituez un chemin de répertoire à local-mount-directory:
sshfs remote-host: local-mount-directory
(démonter avec
fusermount -u local-mount-directory
)Je pense qu'il utilisera votre répertoire personnel par défaut, si vous laissez le répertoire local-mount. "
La copie de fichiers peut être effectuée avec scp.
la source