| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| ssh_vnc [Le 15/12/2010, 19:23] – 140.77.129.54 | ssh_vnc [Le 25/12/2016, 05:49] (Version actuelle) – Toobuntu |
|---|
| | {{tag>Trusty Xenial "Bureau a distance" sécurité ssh vnc}} |
| | ---- |
| | |
| | ====== Tunneliser une connexion VNC via SSH ====== |
| | 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 : |
| | - [[#Création d'une paire de clefs sur le poste client|Créer un paire de clefs sur le poste client]], |
| | - [[#Configuration du poste client|Configurer le poste client]], |
| | - [[#Diffusion de la clé publique sur le poste serveur|Diffuser la clef sur le poste serveur]], |
| | - Enfin [[#Configuration du poste serveur et prise à distance via vnc|configurer le poste serveur]]. |
| | |
| | =====Création d'une paire de clefs sur le poste client ===== |
| | 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 [[:ssh#authentification_par_un_systeme_de_cles_publiqueprive|paragraphe sur les clés de la page ssh]]. |
| | |
| | ===== Configuration du poste client ===== |
| | [[:tutoriel:comment_installer_un_paquet|Installez les paquets]] **[[apt>xvnc4viewer]]** et **[[apt>openssh-client]]** (ce dernier est normalement installé par défaut sous ubuntu). |
| | |
| | [[:tutoriel:comment_modifier_un_fichier|Editez le fichier]] de configuration SSH client **/etc/ssh/ssh_config** avec les [[:sudo|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: <code>sudo /etc/init.d/ssh restart</code> |
| | |
| | ====Sous Windows côté client avec PUTTY==== |
| | 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). |
| | |
| | * [[http://www.chiark.greenend.org.uk/~sgtatham/putty/|Télécharger]] le logiciel PUTTY permettant l'accès à la console en SSH. |
| | * Démarrez Putty, entrez l'adresse sur laquelle vous voulez vous connecter (IP publique ou nom de domaine, pour en ouvrir un gratuit voyez la page sur les [[:dns_dynamique|DNS dynamiques]]). |
| | * Choisissez SSH en 'Connexion Type'. Sur la gauche de l'écran rendez vous dans l'onglet 'SSH', puis 'Tunnel': |
| | * en 'source port', ajoutez <del>5900</del> 5901 |
| | * en 'destination', ajoutez 127.0.0.1:5900 |
| | * Cochez éventuellement sous SSH « Enable Compression ». |
| | * Sauvegarder votre profil. |
| | |
| | |
| | VNC <= 5900 (local) => Putty <= 22 (distant) => machine_a_controler |
| | |
| | ===== Diffusion de la clé publique sur le poste serveur ===== |
| | |
| | Enregistrez sur le ou les postes auxquels vous souhaitez accéder la clé publique copiée de votre [[:fichier_cache|fichier caché]] **~/.ssh/id_dsa.pub**.\\ |
| | Vous devez l'enregistrer dans le [[:fichier_cache|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_cache|fichier caché]] **~/.ssh/authorized_keys2**. |
| | |
| | <note important>Le fichier **authorized_keys2** doit comporter la clé publique SSH sur une seule ligne. Vérifiez que c'est bien le cas avec votre [[editeur_de_texte|éditeur de texte]] favori. |
| | Veillez aussi à décocher la case "activer le retour à la ligne automatique" pour être sûr qu'il n'y a pas de retour à la ligne.</note> |
| | |
| | Vous pouvez diffuser cette clé par le moyen de votre choix (copie par clé usb, envoi email...) |
| | |
| | ===== Configuration du poste serveur et prise à distance via vnc===== |
| | [[:tutoriel:comment_installer_un_paquet|Installez les paquets]] **[[apt>x11vnc]]** et **[[apt>openssh-server]]** |
| | |
| | [[:tutoriel:comment_modifier_un_fichier|Éditez le fichier]] de configuration SSH serveur **/etc/ssh/sshd_config** avec les [[:sudo|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 FIXME [[:tutoriel:application_demarrage|aux applications au démarrage]]. |
| | |
| | |
| | Sur le poste client il ne vous reste plus qu'à taper dans un [[:terminal]]: |
| | * <code>ssh -L 5901:localhost:5900 [adresse poste serveur]</code> |
| | * dans un nouvel onglet <code>xvnc4viewer 127.0.0.1:5901</code> |
| | |
| | <note help> |
| | Il est inutile de laisser le serveur vnc activé tout le temps, si le but est de ne l'utiliser que par ssh. |
| | Plutôt que d'ajouter une application au démarrage, utilisez la méthode suivante: |
| | connectez vous au serveur avec la ligne suivante: |
| | <code> |
| | ssh -X -L 5901:localhost:5900 [adresse poste serveur] |
| | </code> |
| | depuis le serveur lancez x11vnc: |
| | <code> |
| | sudo x11vnc -display :0 |
| | </code> |
| | et enfin dans un nouvel onglet (donc sur le client): |
| | <code> |
| | xvnc4viewer 127.0.0.1:5901 |
| | </code> |
| | </note> |
| | |
| | Un message doit vous demander sur le poste serveur si vous autorisez la prise de contrôle... |
| | |
| | __//contributeurs//__: djoser, |
| |