CommentCaMarche
Recherche
Posez votre question »

Accéder à distance à sa machine (VNC+ssh)

Mars 2015

L'astuce suivante vous permettra d'accéder à distance à votre machine de manière graphique.
Nous allons utiliser le serveur VNC inclu dans Ubuntu (Vino) en le sécurisant par ssh.

Vous pourrez alors accéder à distance à votre PC avec ssh et vnc (Par exemple sous Windows en emportant putty et tvncviewer sur clé USB).

L'avantage d'utiliser VNC à travers ssh est que les communications sont chiffrées, et l'authentification est faite par ssh (et non par VNC).
(En effet, le protocole d'authentification de VNC est faible est il est possible de "sniffer" les informations de connexion. VNC ne devrait jamais être utilisé tel quel sur internet.)


Configuration sur le serveur (machine qui sera accédée à distance)

Installez le serveur ssh


sudo apt-get install openssh-server

Changez le port par défaut du serveur ssh


(Cela réduit les risques d'attaques)
Modifiez le fichier /etc/ssh/sshd_config

Changez: Port 22
par: Port 11122

Changez: PermitRootLogin yes
Par: PermitRootLogin no

(Vous pouvez bien entendu utiliser le port de votre choix.)

Redémarrez ensuite le serveur ssh:
sudo /etc/init.d/ssh restart

Configurez Vino


Lancez gconf-editor et modifiez les valeurs suivantes:
  • authentication_methods: none
  • enabled: cocher
  • network_interfaces: lo (IMPORTANT!)
  • prompt_enabled : décocher


Ainsi, on peut se connecter sur le serveur VNC directement sans mot de passe, mais uniquement localement (à partir de la machine elle-même).
(Avec network_interfaces=lo, il est impossible de se connecter à distance au serveur VNC.)

Configurez votre session


Note: le serveur Vino ne démarrera que pour votre utilisateur.
Il faut donc qu'une session soit préalablement ouverte pour pouvoir vous connecter à distance.
Vous pouvez activer le login automatique: Menu Système > Administration > Fenêtre de connexion


Cochez "Activer la connexion différée" et choisissez votre utilisateur.



Ainsi même si vous redémarrez à distance l'ordinateur, vous pourrez à nouveau vous connecter dessus.

Firewall


Si vous avez un firewall, pensez à ouvrir le port que vous avez choisi pour votre serveur ssh (11122 dans notre exemple).
Il est inutile (et déconseillé) d'ouvrir le port spécifique à VNC (5900).

Configuration sur le client


Essayons maintenant de nous connecter dessus. Nous allons prendre pour exemple un client sous Windows.
Il suffit de prendre Putty (comme client ssh) et tvncviewer (comme client VNC).

Ces deux logiciels ne nécessitent pas d'installation et peuvent être emportés sur clé USB.

Note: Nous utilisons le client TightVNC et non simplement VNC, car il supporte de meilleurs algorithmes de compression (JPEG, etc) supportés par le serveur Vino (comme la compression JPEG).

Configurer Putty


Configurez votre connexion Putty: Entrez l'adresse IP de votre machine, le port:


Ajoutez ensuite un tunnel: port local 5900 vers port 5900 de votre machine:
  • Source port: 5900
  • Destination: localhost:5900
  • Cliquez sur le bouton "Add"



Et n'oubliez pas de sauvegardez ces paramètres (entrez un nom et cliquez sur "Save"):


Vous n'aurez plus à refaire cette manipulation.

Connexion à distance


Lancez Putty et double-cliquez sur votre session ("mon ordinateur" dans notre exemple):


Entrez login et mot de passe de votre utilisateur.



Vous pouvez maintenant lancer VNC et vous connecter sur localhost


Et voilà, vous avez accès à votre bureau.



VNC n'est pas très rapide, mais c'est bien pratique de pouvoir accéder à distance à sa machine.

Notes


Sécurité:Cette méthode introduit 3 risques potentiels:
  • Serveur ssh ouvert: Il est impératif de choisir un mot de passe difficile à deviner (plus de 8 caractères (lettres, chiffres, symboles)).
  • Serveur VNC ouvert en local: Toute personne qui a un accès local à la machine peut se connecter sur le serveur VNC (pas de mot de passe). (La connexion à distance sur le serveur VNC reste impossible).
  • Le login automatique permet à une autre personne d'utiliser votre compte sans le mot de passe, du moment qu'elle a un accès physique à l'ordinateur.


En conséquence, cette méthode ne devrait être mise en oeuvre que si:
  • Le PC n'est physiquement accessible que de vous-même.
  • Si vous êtes l'unique utilisateur(trice) de l'ordinateur (ou si vous faites totalement confiance aux autres utilisateurs).


En outre, il est fortement recommandé d'installer un firewall. Sous Ubuntu 8.10 et suivants, vous pouvez installer gufw et autoriser uniquement en entrée le port de votre serveur ssh (11122 dans notre exemple).

Pour vous connecter sur votre PC, vous devez connaître son adresse IP.
Si elle change trop souvent, vous pouvez installer un client dyndns.

Astuces

Configurer Vino en ligne de commande


Pratique à travers une session ssh sans X11:

sudo su utilisateur 
gconftool-2 --type list --list-type string /desktop/gnome/remote_access/authentication_methods --set "[none]" 
gconftool-2 --type string /desktop/gnome/remote_access/network_interface --set "lo" 
gconftool-2 --type bool /desktop/gnome/remote_access/prompt_enabled --set false 
gconftool-2 --type bool /desktop/gnome/remote_access/enabled --set true


Notez que ces modifications ne seront prises en compte que lors du prochain login de l'utilisateur.
(Si l'utilisateur est déjà connecté, cela ne démarrera pas le serveur Vino).

Pour forcer l'utilisateur à se déconnecter (et donc forcer le démarrage de Vino), faites:
sudo /etc/init.d/gdm restart

Activer le login automatique


Modifiez le fichier /etc/gdm/gdm.conf

Repérez les lignes:
TimedLoginEnable=false 
TimedLogin= 
TimedLoginDelay=30


Remplacez par:
TimedLoginEnable=true 
TimedLogin=pierre 
TimedLoginDelay=30


puis forcez le redémarrage de session:
sudo /etc/init.d/gdm restart

(cela va déconnecter l'utilisateur s'il était connecté.)

Vous devriez maintenant voir le serveur Vino:


Vous pouvez remarquer que Vino n'est en écoute que sur les interfaces locales (127.0.0.1 (ipv4) et ::1 (ipv6)): Il n'est donc pas possible de se connecter sur votre Vino à distance, même si votre firewall est désactivé.
C'est une sécurité.
Pour une lecture illimitée hors ligne, vous avez la possibilité de télécharger gratuitement cet article au format PDF :
Acceder-a-distance-a-sa-machine-vnc-ssh.pdf

A voir également

Dans la même catégorie

Réalisé sous la direction de , fondateur de CommentCaMarche.net.

Publié par sebsauvage. - Dernière mise à jour par Internet Friends
Ce document intitulé «  Accéder à distance à sa machine (VNC+ssh)  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.