Le tutoriel ci-dessous va vous permettre de prendre le contrôle d'une machine distante via ssh. Nous créerons à cet effet un lanceur qui sera inclus dans le menu principal. L'intérêt de l'utilisation de xvnc4viewer en lieu et place de vinagre est l'option -via. Celle-ci permet à vncviewer de se connecter directement en SSH. Cette méthode permet de sécuriser l'accès VNC classique hautement intrusif de l'extérieur. Pour réaliser une telle connexion, il faudra :
On doit d'abord créer les clés sur le ou les postes clients avant de les exporter sur le ou les ordinateurs auxquels on veut accéder. Pour cela reportez-vous au paragraphe sur les clés de la page ssh.
Installez les paquets xvnc4viewer et openssh-client (ce dernier est normalement installé par défaut sous ubuntu).
Editez le fichier de configuration SSH client /etc/ssh/ssh_config avec les droits d'administration et enlever le # présent devant PasswordAuthentication et passer la valeur à no (ceci exclut l'authentification par mot de passe). Faîtes de même avec Protocol pour qu'il ne reste que Protocol 2 (le protocole 1 des clés RSA ou DSA est à proscrire car moins sécurisé).
Relancez le client SSH afin de prendre en compte les modifications avec la commande:
sudo /etc/init.d/ssh restart
Une solution simple et efficace existe sous Windows afin de prendre en main une machine Ubuntu, le tout via un tunnel SSH.
Les manipulations sont les mêmes pour la machine à contrôler, les changements interviennent seulement sur la machine qui contrôle (dans mon cas sous Windows XP).
VNC ⇐ 5900 (local) ⇒ Putty ⇐ 22 (distant) ⇒ machine_a_controler
Enregistrez sur le ou les postes auxquels vous souhaitez accéder la clé publique copiée de votre fichier caché ~/.ssh/id_dsa.pub.
Vous devez l'enregistrer dans le fichier caché ~/.ssh/ du poste serveur.
Puis renommez sur le poste serveur ce fichier en authorized_keys2 (le 2 signifie qu'on souhaite bénéficier du protocole SSH2).
Vous vous retrouvez alors avec le fichier caché ~/.ssh/authorized_keys2.
Vous pouvez diffuser cette clé par le moyen de votre choix (copie par clé usb, envoi email…)
Installez les paquets x11vnc et openssh-server
Éditez le fichier de configuration SSH serveur /etc/ssh/sshd_config avec les droits d'administration et mettez PermitRootLogin no
(à vous de voir mais le laisser sur yes peut permettre toutes les modifications possibles) et AuthorizedKeysFile /home/[nom_d'utilisateur]/.ssh/authorized_keys2
Ajouter tout ça aux applications au démarrage.
Sur le poste client il ne vous reste plus qu'à taper dans un terminal:
ssh -L 5901:localhost:5900 [adresse poste serveur]
xvnc4viewer 127.0.0.1:5901
ssh -X -L 5901:localhost:5900 [adresse poste serveur]
depuis le serveur lancez x11vnc:
sudo x11vnc -display :0
et enfin dans un nouvel onglet (donc sur le client):
xvnc4viewer 127.0.0.1:5901
Un message doit vous demander sur le poste serveur si vous autorisez la prise de contrôle…
contributeurs: djoser,