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 12/03/2014, 21:33]
cartmeleon [4ème étape: configuration du poste serveur et prise à distance via vnc]
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 **[[xvnc4viewer]]** 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. Voir : [[ssh#​authentification_par_un_systeme_de_cles_publiqueprive]]</​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]], 
-__paquets nécessaires pour ce tutoriel:​__ +  - [[#​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]].
-**sur le poste client:** +
-  * [[apt://​xvnc4viewer]] +
-  ​* openssh-client (normalement installé par défaut sous ubuntu) +
- +
-**sur le poste serveur** +
-  * [[apt://​x11vnc]] +
-  ​[[apt://​openssh-server]] +
- +
-----+
  
 =====Création d'une paire de clefs sur le poste client ===== =====Création d'une paire de clefs sur le poste client =====
-La méthode de connexion SSH choisie pour ce tutoriel est celle de l'**Authentification par clé publique/​privée**. +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éderPour cela reportez-vous au [[:ssh#​authentification_par_un_systeme_de_cles_publiqueprive|paragraphe sur les clés de la page 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é utilisée ici est de type dsa 1024 bits. +
- +
- +
-Ceci peut permettre par exemple : +
-  * à un admin de se connecter à des centaines de machines sans devoir connaître des centaines de mots de passe différents ; +
-  * de ne pas avoir un mot de passe à saisir toutes ​les 2 minutes (en utilisant //​ssh-agent//​). +
- +
-<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>​ +
- +
- +
- +
-À moins que vous n'ayez déjà un couple de clés, vous devez d'​abord en créer. Tapez : +
- +
-  ​ssh-keygen -t dsa +
- +
-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>​+
  
 ===== Configuration du poste client ===== ===== 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).
  
-==== Fichier de configuration SSH-client ==== +[[:​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é).
- +
-Editez le fichier de configuration SSH client :+
  
-  gksudo gedit /etc/ssh/ssh_config+Relancez le client SSH afin de prendre en compte les modifications avec la commande: <​code>​sudo ​/etc/init.d/ssh restart</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é)+====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.
  
-Relancez le client SSH afin de prendre en compte ​les modifications avec la commande: +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).
-  sudo /etc/init.d/ssh restart+
  
-==== Installation ​de xvnc4viewer ====+    * [[https://​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.
  
-[[:​tutoriel:​comment_installer_un_paquet|Installer le paquet]] ​ **[[apt://​xvnc4viewer|xvnc4viewer]]** 
  
 +VNC <= 5900 (local) => Putty <= 22 (distant) => machine_a_controler
  
 ===== Diffusion de la clé publique sur le poste serveur ===== ===== 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 ​»+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 caché ​« ~/​.ssh/ ​» du poste serveur. +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).  +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 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. ​Veuillez ouvrir ce fichier dans l'​éditeur (sudo nano ~/​.ssh/​authorized_keys2) et assurez vous que la clé tient sur une seule ligne. +<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. 
-Si ce n'​est ​pas le cas veillez ​à décocher la case "​activer le retour à la ligne" ​dans édition/​préférences onglet affichage ​de l'​éditeur. Puis enregistrez et fermez ​la fenêtre.</​note>​+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...) 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===== ===== 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 nano /​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 (en construction...)+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>​
  
-Sur le poste client il ne vous reste plus qu'à taper dans un terminal ​ 
-  * ssh -L 5901:​localhost:​5900 [adresse poste serveur] 
-  * dans un nouvel onglet xvnc4viewer 127.0.0.1:​5901 
 <note help> <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. Il est inutile de laisser le serveur vnc activé tout le temps, si le but est de ne l'​utiliser que par ssh.
  • ssh_vnc.1394656433.txt.gz
  • Dernière modification: Le 12/03/2014, 21:33
  • par cartmeleon