web-dev-qa-db-fra.com

Comment configurer le partage de bureau à distance via SSH?

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

42
gerky

Méthode 1:

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

  1. ssh -Y gman@remote. Utilisez le transfert X11 de confiance, sinon cela ne fonctionnera pas

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

    vino-preference

  3. Cliquez également sur configure network automatically to accept connection. Mais n'entrez aucun mot de passe, son code base64 . Puis cliquez sur fermer. Puis lancez:

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

    Il va démarrer le serveur vino.

  4. Déconnexion du serveur:

    xhost -
    
    Press CTRL+C twice
    
    exit
    
    exit
    
  5. Ensuite, ouvrez remmina . Choisissez vnc sous protocole.

    Sous l'onglet basic, indiquez l'adresse du serveur dans le champ server.

    Sur l'onglet ssh, cliquez sur enable ssh tunnel. Sous ssh authentication, cela pourrait être password ou public key:

    remmina-preference

    Cliquez sur Enregistrer. Ensuite, double-cliquez sur nom-connexion (home-desktop comme indiqué dans l'image) pour lancer la navigation 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 de 500 pare-feux, il vous suffit d'installer x11vnc sur tous vos ordinateurs (avec marionnette ou tout ce que vous utilisez pour le contrôle en masse).

Ensuite, à partir de votre ordinateur local, lancez:

ssh user@Host -L 5900:localhost:5900 "x11vnc -display :0 -noxdamage"

Évidemment, permuter user@Host pour le nom d'utilisateur et le nom d'hôte/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 redirige ce port par SSX. Vous n'avez pas besoin d'ouvrir de ports (tant que vous pouvez déjà utiliser SSH).

Si vos paramètres d’affichage sont amusants sur vos ordinateurs, vous feriez mieux de laisser le segment -display :0 dans la commande SSH. x11vnc tentera alors automatiquement de trouver le bon affichage.


Source: askubunt

47
Khurshid Alam

Vue d'ensemble 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 le contrôle du bureau sur votre ordinateur hôte localement, allez à 1a. Si vous devez d'abord activer le contrôle du bureau sur votre ordinateur hôte à distance, dirigez-vous sur 1b.

Créez ensuite un profil de client de bureau à distance sur votre ordinateur client afin de vous connecter à la machine hôte via un tunnel SSH et, au final, 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

enter image description here

  1. Cochez Allow other users to view your desktop
  2. Cochez Allow other users to control your desktop
  3. Cochez 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, active le transfert X11 de confiance. Les redirections X11 de confiance ne sont pas soumises aux contrôles d'extension X11 SECURITY.
vino-preferences
  • vino-preferences également dans Dash sous Desktop Sharing

enter image description here

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

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

Procédez comme suit sur la machine cliente:

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

Ctrl+N ou Connexion> Nouveau

enter image description here

  1. Entrez votre adresse IP [123.123.12.3] où il est indiqué Servername__
  2. Passer à l'onglet SSHname__

enter image description here

  1. Cochez Enable SSH Tunnel
  2. Pointez votre client de bureau sur votre port SSH non standard
  3. Définissez votre SSH Authentication<username> et votre mode
  4. Relier

Voir et contrôler la machine hôte

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

En cas de succès à cette étape, vous devez maintenant afficher et contrôler le bureau de la machine hôte à partir de votre ordinateur client via un tunnel SSH.

9
jtd

J'ai pu configurer une nouvelle installation Ubuntu 16.04 à partir d'une connexion ssh distante avec le script suivant:

 #!/bin/bash 
 export DISPLAY =: 0 
 lire -e -p "Mot de passe VNC:" -i "ubuntu" mot de passe 
 dconf écrire/org/gnome/desktop/remote-access/enabled true 
 dconf écrire/org/gnome/desktop/remote-access/Prompt-enabled false 
 dconf écrire/org/gnome/desktop/remote- méthodes d’accès/d’authentification "['vnc']" 
 dconf write/org/gnome/desktop/accès distant/require-encryption false 
 dconf write/org/gnome/desktop/remote- access/vnc-password\"\ '$ (echo -n $ mot_de_passe | base64) \' \" 
 dconf dump /org/gnome/desktop/remote-access/[.____. Services de surveillance du son Lightdm redémarrer 

La citation est importante pour n'importe quel paramètre de chaîne (ticks simples entre guillemets). Pour que dconf puisse l'écrire, il faut accéder à XWindows. C'est pourquoi la partie exportation 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 bien pris, vous n'avez pas vraiment besoin de ça.

Vous pouvez éventuellement le faire si vous souhaitez conserver l'affichage tout le temps:

 dconf écrire/org/gnome/desktop/screensaver/lock-enabled false 
 dconf écrire/org/gnome/desktop/screensaver/ubuntu-lock-on-suspendre false 
 dconf write/org/gnome/desktop/session/idle-delay "uint32 0" 
3
Integrator
  1. Vous pouvez utiliser ssh pour démarrer une session vnc
  2. Utilisez Xnest avec le forword de X11 pour démarrer 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 ceci:

  • Xnest :1 -ac &
  • alors DISPLAY=:1 . /etc/X11/Xsession
2
demure

basé sur @Khurshid Alam répondre, 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 la redirection de port, démarre x11vnc de manière relativement sûre, puis lance et connecte le visualiseur VNC.

  • Il nécessite x11vnc sur l'hôte cible, mais aucune configuration supplémentaire

  • Il nécessite vinagre sur votre PC, mais vous pouvez le changer pour un autre lecteur VNC
0
mnagel

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

Connectez-vous sur l'ordinateur distant en tant qu'utilisateur qui partagera son poste de travail et transmettez 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 user@remote-computer

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

Sudo apt install vino

Activer le partage de bureau (correspondant au numéro d'affichage sur les 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.

0
Futal