Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
ssh_vnc [Le 02/01/2010, 19:17]
213.95.41.13
ssh_vnc [Le 11/09/2022, 11:09] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>BROUILLON ​sécurité ssh vnc}}+{{tag>Trusty Xenial "​Bureau a distance" ​sécurité ssh vnc}}
 ---- ----
  
 ====== Tunneliser une connexion VNC via SSH ====== ====== 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 X4vncviewer ​en lieu et place de vinagre ​(inclus dans ubuntu depuis 8.04) est l'​option -via. Celle-ci permet à vncviewer de se connecter directement en 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. Cette méthode permet de sécuriser l'​accès VNC classique hautement intrusif de l'​extérieur.
-<note help>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.</​note>​ +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]].
  
-__paquets nécessaires pour ce tutoriel:__+=====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]].
  
-**sur le poste client:*+===== Configuration du poste client ​===== 
-  ​* [[apt://xvnc4viewer]] +[[:tutoriel:​comment_installer_un_paquet|Installez les paquets]] ​**[[apt>xvnc4viewer]]** et **[[apt>openssh-client]]** (ce dernier est normalement installé par défaut sous ubuntu).
-  ​* openssh-client (normalement installé par défaut sous ubuntu)+
  
-**sur le poste serveur** +[[: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é).
-  * [[apt://x11vnc]] +
-  ​* [[apt://​openssh-server]]+
  
-----+Relancez le client SSH afin de prendre en compte les modifications avec la commande: <​code>​sudo /​etc/​init.d/​ssh restart</​code>​
  
-===== 1ère étape: création d'une paire de clefs sur le poste client ​===== +====Sous Windows côté ​client ​avec PUTTY==== 
-La méthode ​de connexion SSH choisie pour ce tutoriel est celle de l'​**Authentification par clé publique/​privée**. +Une solution simple et efficace existe sous Windows afin de prendre ​en main une machine Ubuntu, ​le tout via un tunnel SSH.
-De cette manière, il faut être en possession de non plus une mais de deux informations pour se connecter (avoir la clé privée & connaître ​le mot de passe de cette clé). +
-Le type de clé utiliser ici est de type dsa 1024 bits.+
  
 +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).
  
-Ceci peut permettre par exemple ​+    * [[https://​www.chiark.greenend.org.uk/​~sgtatham/​putty/​|Télécharger]] le logiciel PUTTY permettant l'​accès à la console en SSH. 
-  à un admin de se connecter ​à des centaines de machines sans devoir connaître des centaines ​de mots de passe différents ; +    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]]). 
-  * de ne pas avoir un mot de passe à saisir toutes les 2 minutes (en utilisant //ssh-agent//​).+    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.
  
-<note importante>​ 
-Au mois de Mai 2008 a été découvert une faiblesse dans la génération des clés par OpenSSL des packages Debian et dérivés tels qu'​Ubuntu. 
-Si vous avez généré vos clés sur Ubuntu entre 2006 et Mai 2008, il faut régénérer de nouvelles clés après avoir mis a jour le système... 
-</​note>​ 
  
 +VNC <= 5900 (local) => Putty <= 22 (distant) => machine_a_controler
  
 +===== Diffusion de la clé publique sur le poste serveur =====
  
-À moins que vous n'ayez déjà un couple ​de clés, vous devez d'abord en créerTapez :+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**.
  
-  ssh-keygen -t dsa +<​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>​
-Il vous sera alors demandé où sauver la clé privée (acceptez juste l'​endroit par défaut, et ne changez pas le nom par défaut) puis de choisir une //​passphrase//​. La //​passphrase//​ est employée pour chiffrer votre clé privée. Toute personne qui obtiendrait l'​accès à votre clé privée (non protégée) aurait vos permissions sur d'​autres ordinateurs. Veuillez prendre un instant et choisissez une très bonne //​passphrase//​. +
- +
-Votre clef publique a été créée avec la nouvelle clé privée. Elles sont localisées dans le dossier caché « ~/​.ssh/​id_dsa.pub »(clé publique) et « ~/​.ssh/​id_dsa »(clé privée) . +
-<​note ​warning>Cette clé privée ne doit jamais être divulguée en dehors du poste client. Elle est la seule garante de la sécurité de votre liaison SSH. Seule la clé publique doit être distribuée sur les postes auxquels vous souhaitez accéder.</​note>​ +
- +
-===== 2ème étape: Configuration du poste client ===== +
- +
-==== Fichier de configuration SSH-client ==== +
- +
-Editez le fichier ​de configuration SSH client : +
- +
-  sudo gedit /​etc/​ssh/​ssh_config +
- +
-Décocher 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 +
- +
-==== Installation de xvnc4viewer ==== +
- +
-[[:​tutoriel:​comment_installer_un_paquet|Installer le paquet]] ​ **[[apt://​xvnc4viewer|xvnc4viewer]]** +
- +
- +
-===== 3ème étape: 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 caché « ~/​.ssh/​id_dsa.pub ». +
-Vous devez l'​enregistrez 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 retrouver alors avec le fichier caché « ~/​.ssh/​authorized_keys2 » +
- +
-<note important>​Le fichier authorized_keys2 ​doit comporter la clé publique SSH sur une seule ligne. ​Veuillez ouvrir ce fichier dans l'​éditeur (sudo gedit ~/​.ssh/​authorized_keys2) et assurez vous que la clé tient sur une seule ligne. +
-Si ce n'​est ​pas le cas veillez ​à décocher la case "​activer le retour à la ligne" ​dans edition/​préférences onglet affichage de l'éditeur. Puis enregistrez et fermez ​la fenêtre.</​note>​+
  
 Vous pouvez diffuser cette clé par le moyen de votre choix (copie par clé usb, envoi email...) Vous pouvez diffuser cette clé par le moyen de votre choix (copie par clé usb, envoi email...)
  
-===== 4ème étape: configuration ​du poste serveur et prise à distance via vnc=====+===== Configuration ​du poste serveur et prise à distance via vnc===== 
 +[[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] ​  ​**[[apt>​x11vnc]]** et **[[apt>​openssh-server]]**
  
-Editez ​le fichier SSH-serveur+[[:​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''​
-  sudo gedit /​etc/​ssh/​sshd_config+
  
-  * Mettez //​PermitRootLogin no// (**à vous de voir mais le laisser sur yes peut permettre toutes les modifications possibles**) +Ajouter tout ça FIXME [[:​tutoriel:​application_demarrage|aux applications au démarrage]].
-  * et //​AuthorizedKeysFile /​home/​[nom_d'​utilisateur]/.ssh/​authorized_keys2//​+
  
  
-Dans système/​préférences/​applications au démarrage entrez une nouvelle valeur que vous appelerez par exemple vncserveurDonnez lui comme valeur+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> 
-Sur le poste client il ne vous reste plus qu'à taper dans un terminal ​ +Il est inutile de laisser ​le serveur vnc activé tout le temps, si le but est de ne l'utiliser que par ssh. 
-  ​* ​ssh -L 5901:​localhost:​5900 [adresse poste serveur] +Plutôt que d'​ajouter une application au démarrage, utilisez la méthode suivante: 
-  ​* ​dans un nouvel onglet xvnc4viewer 127.0.0.1:​5901+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... Un message doit vous demander sur le poste serveur si vous autorisez la prise de contrôle...
  • ssh_vnc.1262456276.txt.gz
  • Dernière modification: Le 02/01/2010, 19:17
  • par 213.95.41.13