web-dev-qa-db-fra.com

Comment se connecter à distance avec un bureau graphique complet sur X11

J'ai deux machines, toutes deux exécutant kubuntu: serveur et client. Je voudrais me connecter au serveur à partir du client et démarrer l'interface graphique complète sans craindre que certaines commandes soient exécutées en tant qu'utilisateur client.

Donc, ssh -XC fonctionne et je peux aussi très bien démarrer des programmes graphiques.

Cependant, quand je tape startkde dans la console ssh, il dit "KDE semble déjà fonctionner sur cet écran." Ce qui est vrai, mais pas pour le même compte utilisateur.

J'ai essayé de quitter l'interface graphique et de me connecter à partir de tty, mais cela (sans surprise) n'a pas réussi à démarrer les programmes graphiques, y compris kde.

Comment puis-je faire cela de telle sorte que je puisse simplement me connecter comme je me connecte avec un utilisateur local? Utilisez la machine cliente comme un terminal stupide.

8
velis

XDMCP est conçu pour cela. Sur votre serveur, vous devez activer la prise en charge XDMCP dans votre gestionnaire de bureau:

  • si vous utilisez kdm, recherchez

    [Xdmcp]
    Enable=false
    

    à la fin de votre kdmrc, remplacez false par true et redémarrez kdm;

  • si vous utilisez lightdm, ajoutez

    [XDMCPServer]
    enabled=true
    port=177
    

    à /etc/lightdm/lightdm.conf et redémarrez lightdm.

Ensuite, sur votre client, démarrez X en utilisant

X -query ${SERVER_IP}

(avec l'adresse IP appropriée à la place), et l'écran de connexion de votre serveur devrait apparaître sur votre client.

11
Stephen Kitt

Vous pouvez activer le serveur VNC

Paramètres> Partage> Partage d'écran

Ensuite, procurez-vous le proxy 5900 sur ssh sur votre PC si vous avez besoin d'utiliser ssh.

ssh -L 5900:localhost:5900 #destination here

utilisez ensuite un client RD comme Remina pour vous connecter au proxy ssh local;

Se connecter> 127.0.0.1:5900

Assurez-vous d'examiner les défaillances de sécurité de VNC avant de l'utiliser. VNC devrait être assez sûr à utiliser si vous le tunnelez sur ssh. Cette méthode ne fonctionnera que si vous avez un utilisateur connecté. Pour le faire fonctionner sans un utilisateur connecté, vous devrez vous connecter, démarrer un serveur VNC et spécifier quel affichage utiliser I.E. 0, 1, 2 puis connectez-vous à l'aide de Remina ou quelque chose de n'importe où.

4
enconn

Vous pouvez démarrer un gestionnaire de fenêtres sur une session SSH, mais vous devez vous assurer que votre serveur X n'exécute pas déjà un gestionnaire de fenêtres.

Cela peut être accompli de deux manières:

  1. Faites tout manuellement, plutôt que d'utiliser startx ou un gestionnaire d'affichage:

    Tout d'abord, démarrez votre serveur X:

    X -nolisten tcp :0
    

    passez maintenant à une autre console virtuelle (par exemple, appuyez sur ctrl + alt + f2) et tapez:

    DISPLAY=:0 ssh -XC <Host> startkde
    

    Revenez maintenant à la première console virtuelle et utilisez votre session X normalement. L'inconvénient de cette méthode est qu'elle n'inclut pas la configuration de xauth (de sorte qu'en théorie, tout le monde sur la machine distante pourra se connecter à votre session X, ce qui représente un risque pour la sécurité); vous voudrez peut-être ajouter cela.

  2. Utilisez le .xinitrc (pour startx) ou .xsession (pour les gestionnaires d'affichage) des fichiers pour modifier votre gestionnaire de fenêtres:

    Si vous avez configuré votre système pour que SSH sans mot de passe fonctionne (par exemple, via des clés ssh ou en utilisant Kerberos ou un autre mécanisme d'authentification), vous pouvez ajouter la ligne suivante comme dernière ligne dans votre .xinitrc ou .xsession des dossiers:

    exec ssh -XC <Host> startkde
    

    La chose à retenir est que tout ce que vous ajoutez à ces fichiers sera exécuté au lieu de votre configuration de session X11 normale. Dans certains cas, vous devrez peut-être sélectionner l'option "Xsession standard" sur votre écran de connexion.

    Même si vous n'avez pas de SSH sans mot de passe, cela peut toujours fonctionner, à condition que vous ayez ssh-askpass installée. Si ssh détermine qu'il n'a pas de terminal de contrôle mais qu'il fait a un $DISPLAY ensemble de variables, il s'en servira pour demander un mot de passe.

    L'inconvénient de cette méthode est qu'il devient plus difficile de se connecter à la machine "locale".

3
Wouter Verhelst