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 Les deux révisions suivantes
ssh [Le 01/01/2020, 18:15]
176.187.80.175 [SSH]
ssh [Le 15/01/2020, 11:41]
krodelabestiole présentation (ssh gal au lieu de openssh) / + description auth par clé
Ligne 4: Ligne 4:
 ====== SSH ====== ====== SSH ======
  
-Cette page présente les usages les plus courants de SSH et sa configuration de base.+<​note>​Cette page présente les usages les plus courants de SSH et sa configuration de base.
  
-Voir sur [[ssh avancé|SSH Avancé]] pour les autres usages.+Voir sur [[:ssh avancé|SSH Avancé]] pour les autres usages.</​note>​
  
 {{ :​logo_openssh.png|Puffy la mascotte de OpenSSH}} {{ :​logo_openssh.png|Puffy la mascotte de OpenSSH}}
  
-**OpenSSH** ​est un ensemble ​d'outils libres pour établir ​des communications chiffrées, donc sécurisées, sur un réseau informatique ​grâce au protocole SSH (Secure SHell).\\  +[[wpfr>​Secure_Shell|SSH]] ​est un protocole permettant ​d'​établir ​une communication chiffrée, donc sécurisée (on parle parfois de //tunnel//), sur un réseau informatique (intranet ou Internet) entre une machine locale (le //client//) et une machine distante (le //​serveur//​).
-Beaucoup d'​utilisateurs de Telnet, Rlogin, FTP, ou d'​autres programmes de même acabit ne se rendent pas compte que leur données, ​et notamment les mots de passe, sont transmis à travers les réseaux en clair ce qui constitue ​une faille évidente dans la sécurité de leur réseau.\\+
  
-**OpenSSH** chiffre tout le trafic (mots de passe y compris), via une combinaison astucieuse de chiffrement ​symétrique et asymétrique. **OpenSSH** fournit également d'​autres ​méthodes ​d'​authentification alternatives au traditionnel ​mot de passe. \\ +La sécurité du chiffrement ​peut être assurée par différentes ​méthodes, entre autre par [[#​authentification_par_mot_de_passe|mot de passe]] ou par un [[#​authentification_par_un_systeme_de_cles_publiqueprivee|système de clés publique / privée]] (mieux sécurisé, on parle alors de [[wpfr>​cryptographie asymétrique]]).
-Comme son nom l'​indique,​ **OpenSSH** est développé dans le cadre du projet ​[[http://​www.openbsd.org|OpenBSD]]+
  
 SSH remplace de manière sécurisée : SSH remplace de manière sécurisée :
Ligne 21: Ligne 19:
   * Et d'​autres,​ via le « tunneling » : on peut accéder à un service réseau en le faisant circuler dans un tunnel SSH pour profiter de toutes les protections qu'il apporte. Vous pouvez donc sécuriser n'​importe quel service grâce à SSH, comme VNC par exemple.   * Et d'​autres,​ via le « tunneling » : on peut accéder à un service réseau en le faisant circuler dans un tunnel SSH pour profiter de toutes les protections qu'il apporte. Vous pouvez donc sécuriser n'​importe quel service grâce à SSH, comme VNC par exemple.
  
-Les usages ​de base de SSH sont : +<note important>​Beaucoup d'​utilisateurs de Telnet, Rlogin, FTP, ou autres programmes de communication ne se rendent pas compte que leurs données et notamment les mots de passe sont transmis en clair sur le réseau, ce qui constitue une faille de sécurité évidente (voir //​[[wpfr>​Analyseur_de_paquets|sniffing]]//​).</​note>​ 
-  * Accéder à distance à la console en ligne commande (shell), ce qui permet, entre autres, ​d'​effectuer la totalité des opérations courantes et/ou d'​administration sur la machine distante.+ 
 +Les usages de SSH sont entre autre 
 +  * Accéder à distance à la console en ligne commande (shell), ce qui permet d'​effectuer la totalité des opérations courantes et/ou d'​administration sur la machine distante.
   * Déporter l'​affichage graphique de la machine distante.   * Déporter l'​affichage graphique de la machine distante.
   * Transferts de fichiers en ligne de commande.   * Transferts de fichiers en ligne de commande.
-  * Montage ponctuel de répertoires distants, soit en ligne de commande, soit via [[:​Nautilus]]sous Gnome par exemple.+  * Montage ponctuel de répertoires distants, soit en ligne de commande, soit via [[:​Nautilus]] sous [[:​GNOME]] ​par exemple.
   * Montage automatique de répertoires distants.   * Montage automatique de répertoires distants.
 +  * Déporter de nombreux autres services ou protocoles (voir [[:ssh avancé|SSH Avancé]]).
 +
 +**OpenSSH** est la solution la plus utilisée pour mettre en place une communication SSH via un ensemble d'​outils libres dont certains sont installés par défaut sur Ubuntu.\\ ​
 +Comme son nom l'​indique,​ **OpenSSH** est développé dans le cadre du projet [[http://​www.openbsd.org|OpenBSD]].\\ ​
 +C'est cette solution que nous traiterons sur cette page.
  
 ===== Installation ===== ===== Installation =====
Ligne 203: Ligne 208:
 <​code>​scp -P port fichier.txt hornbeck@192.168.1.103:/​home/​hornbeck</​code>​ <​code>​scp -P port fichier.txt hornbeck@192.168.1.103:/​home/​hornbeck</​code>​
  
-<note important>​Lorsque l'on copie des fichiers ou des répertoires sur d'​autres machines, ne pas oublier que les fichiers ou répertoires deviendront propriété du compte avec lequel on se connecte à distance. Pour préserver les propriétaire et groupe de chaque fichier ou répertoire,​ il sera donc utile de recourir à un logiciel tel que [[tar|tar]] pour enregistrer l'​intégralité des informations relatives à ce que l'on transfère.</​note>​+<note important>​Lorsque l'on copie des fichiers ou des répertoires sur d'​autres machines, ne pas oublier que les fichiers ou répertoires deviendront propriété du compte avec lequel on se connecte à distance. Pour préserver les propriétaire et groupe de chaque fichier ou répertoire,​ il sera donc utile de recourir à un logiciel tel que [[:tar|tar]] pour enregistrer l'​intégralité des informations relatives à ce que l'on transfère.</​note>​
 ==== Monter un répertoire distant, navigation via sftp (secure file transfer protocol) ==== ==== Monter un répertoire distant, navigation via sftp (secure file transfer protocol) ====
  
Ligne 278: Ligne 283:
 Puis en cas de modifications,​ [[#​relancer]] le service. Puis en cas de modifications,​ [[#​relancer]] le service.
  
-<​note ​important>Si vous ouvrez votre serveur SSH sur Internet, par exemple pour y accéder depuis l'​ordinateur d'un ami(e) ou lui permettre d'​accéder à certains de vos fichiers, n'​oubliez JAMAIS qu'​Internet est parcouru ​en permanence ​par des robots qui scannent et testent en permanence tous les serveurs (SSH et autres) et qu'ils vont faire des tentatives pour trouver vos mots de passe de compte. L'​usage des clés est donc fortement recommandé.\\ +<​note ​warning>Si vous ouvrez votre serveur SSH sur Internet, par exemple pour y accéder depuis l'​ordinateur d'un ami(e) ou lui permettre d'​accéder à certains de vos fichiers, n'​oubliez JAMAIS qu'​Internet est parcouru par des robots qui scannent et testent en permanence tous les serveurs ​disponibles ​(SSH et autres) et qu'ils vont faire des tentatives pour trouver vos mots de passe de compte ​(on parle d'​[[wpfr>​attaque par force brute]]). L'​usage des clés est donc très fortement recommandé. 
-Sinon utilisez des mots de passe longs et complexes ​ou encore utilisez des systèmes ​de protection ​comme [[:​fail2ban]] qui permet de bannir des adresses IP.\\+ 
 +Si vous ne pouvez vraiment pas faire autrement, ​utilisez des mots de passe longs et complexes ​ainsi qu'un système ​de protection ​tel que [[:​fail2ban]] qui permet de bannir des adresses IP au bout d'un certain nombre de tentatives erronées.\\
 Voir aussi [[:​denyhosts]] notamment en cas de: Voir aussi [[:​denyhosts]] notamment en cas de:
 <​code>​ssh_exchange_identification:​ read: Connection reset by peer</​code></​note>​ <​code>​ssh_exchange_identification:​ read: Connection reset by peer</​code></​note>​
Ligne 285: Ligne 291:
 ==== Authentification par un système de clés publique/​privée ==== ==== Authentification par un système de clés publique/​privée ====
  
-Autrefois tout le monde employait l'​authentification typique par le principe //​identifiant - mot de passe//. Cependant si quelqu'​un connaît votre mot de passela sécurité est compromise.\\ +=== Description === 
-Pour être débarrassé ​du problème, SSH offre l'**Authentification ​par clé publique/​privée** au lieu des mots de passe « simples ». De cette manière, il faut être en possession de non plus d'une mais de deux informations pour se connecter (avoir la clé privée et connaître le mot de passe de cette clé).+ 
 +Autrefois tout le monde employait l'​authentification typique par le principe //​identifiant - mot de passe//. Cependant si quelqu'​un connaît votre mot de passe ou le découvre au moyen d'une attaque ​la sécurité est compromise. ​De plus utiliser un mot de passe différent pour chaque serveur et l'​entrer à chaque connexion peut s'​avérer contraignant. 
 + 
 +Pour être débarrassé ​des ces problèmes, SSH propose un système d'authentification ​par clé publique/​privée au lieu des mots de passe « simples ».
  
 Ceci peut permettre par exemple : Ceci peut permettre par exemple :
   * à un administrateur de se connecter à des centaines de machines sans devoir connaître des centaines de mots de passe différents ;   * à un administrateur 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//​).   * de ne pas avoir un mot de passe à saisir toutes les 2 minutes (en utilisant //​ssh-agent//​).
 +
 +Ces clés restent des chaînes de caractère (en français courant : du texte), mais sont beaucoup plus longues et aléatoires que de simples mots de passe.
 +
 +La clé privée est en principe unique : chaque utilisateur possède une clé privée qu'il peut copier sur les terminaux auxquels il accède physiquement et depuis lesquels il a besoin d'un accès SSH (via le client SSH). Cette clé se trouve généralement dans le fichier ''​~/​.ssh/​id_rsa''​. C'est un document sensible très personnel, il faut y appliquer des droits très restrictifs : ''​r-x --- ---''​ (500) pour le répertoire .ssh et ''​r-- --- ---''​ (400) pour le fichier id_rsa.\\ ​
 +Pour un maximum de sécurité il est possible de protéger cette clé privée au moyen d'un mot de passe (qu'il faudra dans ce cas entrer lors de chaque connexion).
 +
 +De son côté la clé publique est envoyée à tous les serveurs auxquels on veut accéder à distance afin qu'ils nous identifient avec certitude (ils seront au moins sûrs qu'on possède bien la clé privée associée). Côté serveur cette clé publique sera stockée dans le fichier ''​~/​.ssh/​authorized_keys''​ (avec éventuellement les clés publique d'​autres utilisateurs,​ une clé publique par ligne).
 +Localement on peut stocker une clé publique par ex. dans un fichier ''​id_rsa.pub''​ qui peut aussi se trouver dans le répertoire ''​~/​.ssh'',​ ou ailleurs (ce n'est pas un document sensible).
 +
 +On peut générer une nouvelle clé publique depuis une clé privée mais pas l'​inverse.
 +
 +=== Mise en place des clés ===
  
 À moins que vous n'ayez déjà un couple de clés, vous devez d'​abord en créer.\\ À moins que vous n'ayez déjà un couple de clés, vous devez d'​abord en créer.\\
Ligne 479: Ligne 500:
   * [[http://​www.openssl.org/​|site officiel]]   * [[http://​www.openssl.org/​|site officiel]]
   * [[http://​fr.openclassrooms.com/​informatique/​cours/​reprenez-le-controle-a-l-aide-de-linux/​la-connexion-securisee-a-distance-avec-ssh|explications et tutoriel détaillé sur OpenClassRooms]]   * [[http://​fr.openclassrooms.com/​informatique/​cours/​reprenez-le-controle-a-l-aide-de-linux/​la-connexion-securisee-a-distance-avec-ssh|explications et tutoriel détaillé sur OpenClassRooms]]
-  * [[cssh]] : Cluster SSH+  * [[:cssh]] : Cluster SSH
   * [[http://​www.ssi.gouv.fr/​uploads/​2014/​01/​NT_OpenSSH.pdf|note ministérielle du 17 août 2015]] : Recommandations pour un usage sécurisé d’(Open)SSH   * [[http://​www.ssi.gouv.fr/​uploads/​2014/​01/​NT_OpenSSH.pdf|note ministérielle du 17 août 2015]] : Recommandations pour un usage sécurisé d’(Open)SSH
   * [[https://​www.schneier.com/​blog/​archives/​2014/​04/​heartbleed.html|page du blog de l'​expert en sécurité Bruce Schneier sur le bug Heartbleed]]   * [[https://​www.schneier.com/​blog/​archives/​2014/​04/​heartbleed.html|page du blog de l'​expert en sécurité Bruce Schneier sur le bug Heartbleed]]
Ligne 487: Ligne 508:
   * [[:​ssh_avance]]   * [[:​ssh_avance]]
  
-//​Contributeurs:​ [[:​utilisateurs:​sx1]]//​+//​Contributeurs:​ [[:​utilisateurs:​sx1]], [[:​utilisateurs:​krodelabestiole]]//
  • ssh.txt
  • Dernière modification: Le 27/02/2024, 11:53
  • par bruno