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 08/12/2008, 14:08]
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>securite ​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]]+
  
-----+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éeToute personne qui obtiendrait l'​accès à votre clé privée (non protégée) aurait vos permissions sur d'​autres ordinateursVeuillez prendre un instant et choisissez une très bonne //​passphrase//​.+Vous pouvez diffuser cette clé par le moyen de votre choix (copie par clé usb, envoi email...)
  
-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) . +===== Configuration ​du poste serveur et prise à distance via vnc===== 
-<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>+[[:​tutoriel:​comment_installer_un_paquet|Installez ​les paquets]] ​  ​**[[apt>​x11vnc]]** et **[[apt>openssh-server]]**
  
-===== 2ème étapeConfiguration du poste client =====+[[: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''​
  
-==== Fichier de configuration SSH-client ====+Ajouter tout ça FIXME [[:​tutoriel:​application_demarrage|aux applications au démarrage]].
  
-Editez le fichier de configuration SSH client : 
  
-  sudo gedit /etc/ssh/ssh_config+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>
  
-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é) +<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. 
-Relancez le client SSH afin de prendre en compte les modifications ​avec la commande+Plutôt que d'ajouter une application au démarrage, utilisez la méthode suivante: 
-  $ sudo /​etc/​init.d/​ssh restart +connectez vous au serveur ​avec la ligne suivante
- +<​code>​ 
-==== Installation de x4vncviewer ==== + ssh -X -L 5901:localhost:5900 [adresse ​poste serveur] 
- +</code> 
-[[:tutoriel:comment_installer_un_paquet|Installer le paquet]] ​ **[[apt://​x4vncviewer|x4vncviewer]]** +depuis ​le serveur ​lancez x11vnc: 
- +<​code>​ 
- +sudo x11vnc -display :0 
-===== 3ème étape: diffusion de la clé publique sur le poste serveur ​===== +</code> 
- +et enfin dans un nouvel onglet ​(donc sur le client): 
-Enregistrez sur le ou les postes auxquels vous souhaitez accéder la clé publique copiée de votre fichier caché « ~/.ssh/​id_dsa.pub ». +<code
-Vous devez l'​enregistrez dans le fichier caché « ~/.ssh/ » du poste serveur. +xvnc4viewer 127.0.0.1:5901 
-Puis renommez sur le poste serveur ce fichier en **authorized_keys2** (le 2 signifie qu'on souhaite bénéficier du protocole SSH2).  +</​code>​ 
-Vous vous retrouver alors avec le fichier caché « ~/​.ssh/​authorized_keys2 » +</note>
- +
-<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_keys2et 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...+
- +
-===== 4ème étapeconfiguration du poste serveur ===== +
- +
-Editez le fichier SSH-serveur:​ +
-  sudo gedit /etc/​ssh/​sshd_config+
  
-**************Wiki encore en construction...**************+Un message doit vous demander sur le poste serveur si vous autorisez la prise de contrôle...
  
 __//​contributeurs//​__:​ djoser, __//​contributeurs//​__:​ djoser,
  
  • ssh_vnc.1228741726.txt.gz
  • Dernière modification: Le 18/04/2011, 14:41
  • (modification externe)