Comment configurer le partage de bureau à distance via SSH?

41

Existe-t-il un moyen d'afficher (et de contrôler) un poste de travail distant via SSH? Je n'aurai pas d'accès physique à la machine hôte distante.

    
posée gerky 04.06.2013 - 18:21
la source

6 réponses

42

Méthode 1:

Cela peut être réalisé avec vino vnc server & amp; remmina (les deux sont fournis par défaut avec ubuntu, sinon installez-le en exécutant sudo apt-get install remmina ). Puis, exécutez les commandes suivantes depuis l'ordinateur local à l'invite du terminal:

  1. ssh -Y [email protected] . Utilisez le transfert sécurisé X11, sinon cela ne fonctionnera pas

  2. vino-preferences . Cela ouvrira les préférences vino.

  3. Cliquez également sur configure network automatically to accept connection . N'entrez aucun mot de passe, mais son encodage base64 . Puis cliquez sur Fermer. Puis lancez:

    sudo -s
    
    export DISPLAY=:0.0
    
    xhost +
    
    /usr/lib/vino/vino-server & 
    

    Il démarrera le serveur vino.

  4. Déconnexion du serveur:

    xhost -
    
    Press CTRL+C twice
    
    exit
    
    exit
    
  5. Ouvrez ensuite remmina . Choisissez vnc sous protocole.

    Sous basic tab mettre l’adresse du serveur dans le champ server .

    Sous l'onglet ssh, cliquez sur enable ssh tunnel . Sous ssh authentication , il pourrait s'agir de password ou de public key :

    Cliquez sur Enregistrer. Et puis double-cliquez sur nom-connexion (bureau d'accueil comme indiqué sur l'image) pour commencer à naviguer sur le bureau distant.

Méthode 2:

x11vnc est un simple serveur VNC et vous n'aurez pas à vous soucier des paramètres de Gnome ou des 500 pare-feu, installez simplement x11vnc sur tous vos ordinateurs (avec une marionnette ou tout ce que vous utilisez pour le contrôle de masse) .

Ensuite, à partir de votre ordinateur local, exécutez:

ssh [email protected] -L 5900:localhost:5900 "x11vnc -display :0 -noxdamage"

Évidemment, remplacer [email protected] par le nom d'utilisateur et le nom d'hôte / l'adresse IP de l'ordinateur distant.

Ensuite, utilisez un client VNC de votre choix pour vous connecter à localhost:5900 . La commande SSH démarre un serveur vnc sur l'ordinateur distant, puis rétablit ce port sur SSH. Vous n'avez pas à ouvrir de ports (du moment que vous pouvez déjà SSH).

Si vos ordinateurs ont des paramètres d'affichage amusants, vous devriez peut-être supprimer le segment -display :0 dans la commande SSH. x11vnc essaiera alors automatiquement de trouver le bon affichage.

Source: askubuntu

    
réponse donnée Khurshid Alam 06.06.2013 - 10:25
la source
6

Présentation de la solution

En supposant que vous ayez déjà configuré un OpenSSH Server sur votre ordinateur hôte, vous devez d'abord activer le contrôle du bureau sur votre ordinateur hôte. Si vous pouvez d'abord activer localement le contrôle du bureau sur votre ordinateur hôte, rendez-vous sur 1a. Si vous devez d'abord activer le contrôle du bureau sur votre ordinateur hôte à distance, accédez à 1b.

Ensuite, créez un profil de client de bureau à distance sur votre ordinateur client afin de vous connecter à la machine hôte via un tunnel SSH, puis de visualiser et de contrôler le bureau de la machine hôte via un tunnel SSH.

1a. Activer localement le contrôle à distance de la machine hôte

Procédez comme suit sur la machine hôte:

vino-preferences
  • vino-preferences également dans Dash sous Desktop Sharing

  1. Tick Allow other users to view your desktop
  2. Tick Allow other users to control your desktop
  3. Tick Require the user to enter this password
  4. Entrez un mot de passe difficile à deviner
  5. Fermer

1b. Activer à distance le contrôle à distance de la machine hôte

Procédez comme suit sur l'ordinateur client en remplaçant 123.123.12.3 par l'adresse IP de votre ordinateur hôte:

ssh -Y 123.123.12.3
  • -Y, Permet le transfert sécurisé X11. Les redirections X11 approuvées ne sont pas soumises aux commandes d'extension X11 SECURITY.

vino-preferences
  • vino-preferences également dans Dash sous Desktop Sharing

  1. Tick Allow other users to view your desktop
  2. Tick Allow other users to control your desktop
  3. Tick Require the user to enter this password
  4. Entrez un mot de passe difficile à deviner
  5. Fermer

Créer un profil client de bureau à distance sur votre ordinateur client

Procédez comme suit sur l’ordinateur client:

remmina
  • remmina également dans Dash sous Remmina Remote Desktop Client

Ctrl + N ou Connection & gt; Nouveau

  1. Indiquez votre adresse IP [123.123.12.3] où il est indiqué Server
  2. Basculez vers l’onglet SSH

  1. Tick Enable SSH Tunnel
  2. Dirigez votre client Desktop vers votre port SSH non standard
  3. Définissez votre SSH Authentication <username> et mode
  4. Connect

Afficher et contrôler la machine hôte

Sur la machine cliente, lorsqu'on lui demande le mot de passe <username> , entrez-le pour créer le tunnel SSH. Lorsqu'on vous demande le mot de passe VNC, entrez la phrase secrète que vous avez précédemment saisie dans la machine hôte.

Si vous réussissez à cette étape, vous devriez maintenant visualiser et contrôler le bureau de la machine hôte depuis votre ordinateur client via un tunnel SSH.

    
réponse donnée jtd 16.02.2014 - 05:30
la source
2
  1. Vous pouvez utiliser ssh pour démarrer une session vnc
  2. Utilisez Xnest avec X11 pour mettre en avant une session à distance et la transférer sur votre ordinateur actuel. (Je le fais de temps en temps avec mon pi) page de manuel

J'utilise Xnest comme ça:

  • Xnest :1 -ac &
  • then DISPLAY=:1 . /etc/X11/Xsession
réponse donnée demure 04.06.2013 - 18:25
la source
1

J'ai pu installer Ubuntu 16.04 à partir d’une connexion ssh distante avec le script suivant:

#!/bin/bash
export DISPLAY=:0
read -e -p "VNC Password: " -i "ubuntu" password
dconf write /org/gnome/desktop/remote-access/enabled true
dconf write /org/gnome/desktop/remote-access/prompt-enabled false
dconf write /org/gnome/desktop/remote-access/authentication-methods "['vnc']"
dconf write /org/gnome/desktop/remote-access/require-encryption false
dconf write /org/gnome/desktop/remote-access/vnc-password \"\'$(echo -n $password | base64)\'\"
dconf dump /org/gnome/desktop/remote-access/
sudo service lightdm restart

Les guillemets sont importants pour tous les paramètres de chaîne (ticks simples entre guillemets). Pour que dconf soit capable d'écrire, il lui faut accéder à XWindows, c'est pourquoi la partie export de DISPLAY est nécessaire. Je pense que vous devez toujours être connecté au bureau sur la machine Ubuntu pour vous connecter à VNC après cela. La commande dump est juste là pour confirmer que tous les paramètres ont été pris en compte, vous n'en avez pas vraiment besoin.

Vous pouvez éventuellement le faire si vous souhaitez conserver l’affichage en permanence:

dconf write /org/gnome/desktop/screensaver/lock-enabled false
dconf write /org/gnome/desktop/screensaver/ubuntu-lock-on-suspend false
dconf write /org/gnome/desktop/session/idle-delay "uint32 0"
    
réponse donnée Integrator 09.04.2017 - 03:11
la source
0

Comment démarrer le serveur Vino à distance sans transférer X (ligne de commande uniquement)

Connectez-vous à l'ordinateur distant en tant qu'utilisateur qui partagera son bureau et transmettra le port 5900 au même port sur localhost. Avec PuTTY, la redirection est définie dans Connection / SSH / Tunnels. Avec une ligne de commande, utilisez:

 ssh -L 5900:localhost:5900 [email protected]

Installez vino-server s'il n'est pas déjà installé. Par exemple:

sudo apt install vino

Activer le partage du bureau (correspondant au numéro d’affichage des 1ère et 2ème lignes):

echo $DISPLAY
export DISPLAY=:0
dbus-launch --exit-with-session gsettings set org.gnome.Vino enabled true
dbus-launch --exit-with-session gsettings set org.gnome.Vino prompt-enabled false
dbus-launch --exit-with-session gsettings set org.gnome.Vino require-encryption false
/usr/lib/vino/vino-server

Démarrez un visualiseur VNC et connectez-vous à localhost pour l'adresse du serveur VNC.

    
réponse donnée Futal 08.10.2015 - 14:41
la source
0

basé sur la réponse de @Khurshid Alam Je présente l'extrait suivant:

ssh $TARGETHOST -L 5900:localhost:5900 "x11vnc -localhost -display :0 -noxdamage" &; sleep 10 && vinagre localhost

  • C'est une commande qui ne nécessite aucune interaction

  • Il crée le tunnel SSH avec le transfert de port, démarre x11vnc de manière raisonnablement sûre et lance et connecte le visualiseur VNC

  • Il nécessite x11vnc sur l’hôte cible, mais aucune autre configuration

  • Il faut utiliser vinagre sur votre PC, mais vous pouvez le changer de manière triviale pour un autre visualiseur VNC
réponse donnée mnagel 04.04.2016 - 10:58
la source

Lire d'autres questions sur les étiquettes