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
utilisateurs:sx1:ssh_bases [Le 27/02/2012, 21:58]
sx1 [Authentification par un système de clés publique/privée]
utilisateurs:sx1:ssh_bases [Le 11/09/2022, 13:12] (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 5: Ligne 5:
 Cette page présente les usages les plus courants de SSH et sa configuration de base. 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.+{{ :logo_openssh.png|Puffy la mascotte de OpenSSH}}
  
 +**OpenSSH** est une version libre de la suite de protocole de SSH, des outils de connectivité de réseau sur lesquels un nombre croissant de personnes sur l'​Internet viennent s'​appuyer.
 +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 transmises à travers les réseaux en clair ce qui constitue une faille évidente dans la sécurité de leur réseau.\\
  
-{{ logo_openssh.png|Puffy la mascotte de OpenSSH}} +**OpenSSH** ​crypte ​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'​authentifications alternatives au traditionnel mot de passe. \\
-**OpenSSH** est une version libre de la suite de protocole de SSH, des outils de connectivité de réseau sur lesquels un nombre croissant de personnes sur l'​Internet viennent s'​appuyer.  +
-Beaucoup d'​utilisateurs de Telnet, Rlogin, FTP, ou d'​autres programmes de même acabit ne se rendent pas compte que leur mot de passe est transmis à travers les réseaux en clair ce qui constitue une faille évidente dans la sécurité de leur réseau. Avec ces anciens protocoles, les données sont également transmises en clair.\\ +
- +
-**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'​authentifications alternatives au traditionnel mot de passe. \\+
 Comme son nom l'​indique,​ **OpenSSH** est développé dans le cadre du projet [[http://​www.openbsd.org|OpenBSD]] Comme son nom l'​indique,​ **OpenSSH** est développé dans le cadre du projet [[http://​www.openbsd.org|OpenBSD]]
  
Ligne 25: Ligne 24:
   * 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épertoire distants, soit en ligne de commande, soit via [[Nautilus]],​ sous Gnome par exemple.+  * Montage ponctuel de répertoire 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.
  
 ===== Installation ===== ===== Installation =====
-Si vous voulez accéder à un ordinateur (votre ordinateur personnel, votre serveur local, un serveur distant dont vous effectuez l'​administration,​ etc.) vous devez installer openssh-server sur la machine à joindre en SSH, qui sera le "​serveur"​.  +Si vous voulez accéder à un ordinateur (votre ordinateur personnel, votre serveur local, un serveur distant dont vous effectuez l'​administration,​ etc.) vous devez installer ​**openssh-server** sur la machine à joindre en SSH, qui sera le "​serveur"​. 
-Il vous faudra installer sur la machine qui commande, le "​client",​ openssh-client. +Il vous faudra installer sur la machine qui commande, le "​client", ​**openssh-client**.
-==== Installation du serveur SSH ====+
  
-[[:​tutoriel:​comment_installer_un_paquet|installez le paquet]] **[[apt://​openssh-server|openssh-server]]** sur votre poste.+==== Installation du serveur SSH ====
  
-Par défaut, il se lance au démarrage.+[[:​tutoriel:​comment_installer_un_paquet|Installez le paquet]] **[[apt>​openssh-server|openssh-server]]** sur votre poste.
  
-== Ubuntu 10.04 et ultérieur ​==+=== Utilisation du serveur SSH === 
 +Le serveur SSH fonctionne en tant que [[:​services|service]] qui par défaut après l'​installation sera lancé au démarrage de la machine.\\ 
 +Il est possible notamment de : 
 +  * L'​[[#​activer]] ou l'​[[#​arrêter]] : par exemple si vous souhaitez désactiver momentanément le serveur SSH 
 +  * Le [[#​relancer]] : par exemple si vous faites une modifications de configuration
  
-Pour l'activer après une fausse manipulation :+Vous trouverez en fin de cette page plus d'information sur la [[#​Configuration du serveur SSH]] suffisante par défaut.
  
-  ​sudo service ssh start+== Activer == 
 +Saisissez dans un [[:​terminal]] la [[:​commande_shell|commande]] suivante: 
 +<​code>​sudo service ssh start</​code>​
  
-Pour l'​arrêter :+== Arrêter == 
 +<​code>​sudo service ssh stop</​code>​
  
-  ​sudo service ssh stop+== Relancer == 
 +Pour relancer le serveur SSH. 
 +<​code>​sudo service ssh restart</​code>​
  
 ==== Installation du client SSH ==== ==== Installation du client SSH ====
  
-Sur le poste client (qui va prendre l'​accès à distance) **openssh-client**installé par défaut sous Ubuntu, doit être présentSinon la commande ​apt-get install ​openssh installe à la fois le serveur et le client. Sur votre machine cliente, le serveur n'est peut être pas indispensable, ​pensez à l'​enlever ​le cas échéant (apt-get remove ​openssh-serveur).+Sur le poste client (qui va prendre l'​accès à distance) **openssh-client** ​est installé par défaut sous Ubuntu. ​Dans le cas contraire [[:​tutoriel:​comment_installer_un_paquet|Installez le paquet]] **[[apt>openssh]]** qui installe à la fois le "serveur" ​et le "client".\\ 
 +Sur votre machine cliente, le serveur n'est peut être pas indispensable. Le cas échéantvous pouvez [[:​tutoriel:​comment_supprimer_un_paquet|supprimez ​le paquet]] **openssh-server**.
  
-**Clients pour machines qui ne sont pas sous Linux : **+== Clients pour machines qui ne sont pas sous Linux ==
  
 Si vous devez prendre le contrôle depuis un poste équipé de Windows vous pouvez installer [[http://​www.chiark.greenend.org.uk/​~sgtatham/​putty/​|PuTTY]] qui est disponible sous licence MIT (une licence libre comparable à la licence BSD). Si vous devez prendre le contrôle depuis un poste équipé de Windows vous pouvez installer [[http://​www.chiark.greenend.org.uk/​~sgtatham/​putty/​|PuTTY]] qui est disponible sous licence MIT (une licence libre comparable à la licence BSD).
Ligne 57: Ligne 65:
 Si vous voulez établir une connexion ssh depuis un smartphone Blackberry(r),​ vous pouvez installer [[http://​bbssh.org/​|bbssh]],​ qui est sous licence libre GPLv2, les sources sont fournies. Si vous voulez établir une connexion ssh depuis un smartphone Blackberry(r),​ vous pouvez installer [[http://​bbssh.org/​|bbssh]],​ qui est sous licence libre GPLv2, les sources sont fournies.
  
-<note tip>​Vérifiez bien que UFW, le gestionnaire de firewall standard sous Ubuntu, n'est pas actif sur le serveur SSH AVANT l'​installation de SSH. Il ne devrait pas si vous ne l'avez pas activé. Si UFW est actif, ​ vous avez intérêt à vérifier s'il laisse passer le port standard du protocole SSH, le 22. Si ce n'est pas le cas, vous ne pourrez pas utiliser SSH sur cette machine. +<note tip>​Vérifiez bien que [[:UFW]], le gestionnaire de firewall standard sous Ubuntu, n'est pas actif sur le __serveur SSH__ **AVANT** l'​installation de SSH. Il ne devrait pas si vous ne l'avez pas activé.\\ 
-Voyez la page [[UFW]] pour connaître le fonctionnement du pare-feu, ou, plus confortable,​ utilisez [[gufw|Gufw : interface graphique du pare-feu UFW]]+Si UFW est actif, ​ vous avez intérêt à vérifier s'il laisse passer le port standard du protocole SSH, le 22. Si ce n'est pas le cas, vous ne pourrez pas utiliser SSH sur cette machine.\\ 
 +Voyez la page [[:UFW]] pour connaître le fonctionnement du pare-feu, ou, plus confortable,​ utilisez [[:gufw|Gufw : interface graphique du pare-feu UFW]]
 </​note>​ </​note>​
  
 ===== Utilisations de SSH===== ===== Utilisations de SSH=====
 +
 ==== Accès à distance à la console en ligne de commande (shell ssh) ==== ==== Accès à distance à la console en ligne de commande (shell ssh) ====
  
 Pour ouvrir une session sur un ordinateur distant ayant un serveur SSH, vous devez écrire quelque chose comme ceci : Pour ouvrir une session sur un ordinateur distant ayant un serveur SSH, vous devez écrire quelque chose comme ceci :
- +<​code>​ssh <​nom_utilisateur>​@<​ipaddress>​ -p <​num_port></​code
-  ​ssh <​nom_utilisateur>​@<​ipaddress>​ -p <​num_port>​ +__Exemple ​:__ 
- +<​code>​ssh phyrex@192.168.23.42 -p 12345</​code>​ 
-Exemple ​+L'​option **-p xxx** qui précise le port utilisé par le serveur ​est facultative. Si rien n'est précisé, c'est le port 22 qui sera utilisé par défaut.
- +
-  ​ssh phyrex@192.168.23.42 -p 12345 +
- +
-L'​option **-p xxx** est facultative. Si rien n'est précisé, c'est le port 22 qui sera utilisé par défaut.+
  
 Pour se connecter avec ssh en ipv6 depuis un terminal, écrire sans crochet : Pour se connecter avec ssh en ipv6 depuis un terminal, écrire sans crochet :
- +<​code>​ssh -6 <​nom_utilisateur>​@<​adresse ipv6> </code
-  ​ssh -6 <​nom_utilisateur>​@<​adresse ipv6>  +__Exemple__:​ 
- +par exemple pour un lien Internet : 
-soit par exemple pour un lien Internet : +<​code>​ssh -6 alfred@2a01:​e35:​2431::​2e57</​code>​
- +
-  ​ssh -6 alfred@2a01:​e35:​2431::​2e57 ​  ​+
  
 <note tip> <note tip>
 Vous pouvez aussi appeler un ordinateur par son nom : Vous pouvez aussi appeler un ordinateur par son nom :
-  ​ssh utilisateur@nom_machine+<​code>​ssh utilisateur@nom_machine</​code>​
 à partir du moment où celui-ci est résolu par votre machine. à partir du moment où celui-ci est résolu par votre machine.
  
-Cela peut se faire sur le réseau local par le fichier **/​etc/​hosts**,​ éventuellement distribué d'un serveur vers les clients locaux au travers de NIS, ou bien par un service de DNS si vous accédez à une machine distante (serveur loué) pour lequel vous avez enregistré un nom de domaine.+Cela peut se faire sur le réseau local par le fichier **/​etc/​hosts**,​ éventuellement distribué d'un serveur vers les clients locaux au travers de [[wpfr>​Network_Information_Service|NIS]], ou bien par un service de [[wpfr>​Domain_Name_System|DNS]] si vous accédez à une machine distante (serveur loué) pour lequel vous avez enregistré un nom de domaine.
 </​note>​ </​note>​
  
-==== Affichage ​graphique ​déporté (Tunneling serveurX par ssh) - Accéder aux applications graphiques ​==== +==== Outils ​graphique ​pour les connexions SSH ====
  
-La commande ssh offre un joker inattendu : on peut exécuter des applications X-Windows à distance. Cela est bien pratique pour travailler loin de chez soi, partager ​une machine ou simplement faire de l'​entretien.+Il existe sous Ubuntu ​un outil qui permet ​de gérer facilement les connexions SSH avec une interface graphique GSTM. 
 + 
 +==== Affichage graphique déporté (Tunneling serveurX par ssh) - Accéder aux applications graphiques ====
  
-  ​ssh -X nomUtilisateur@Ipserver+La commande ssh offre un joker inattendu : on peut exécuter des applications X-Windows à distance. Cela est bien pratique pour travailler loin de chez soi, partager une machine ou simplement faire de l'​entretien. 
 +<​code>​ssh -X nomUtilisateur@Ipserver</​code>​
  
-L'​option -X permet la déportation de l'​application X-Window (affichage graphique à distance). Ceci est possible grâce aux fonctions de tunneling réseau dont dispose SSH. N'​oubliez pas que Ubuntu (Unix en général) travaille en mode client/​serveur et cela s'​applique aussi à l'​affichage géré par X-Window.+L'​option ​**-X** permet la déportation de l'​application X-Window (affichage graphique à distance). Ceci est possible grâce aux fonctions de tunneling réseau dont dispose SSH. N'​oubliez pas que Ubuntu (et Unix en général) travaille en mode client/​serveur et cela s'​applique aussi à l'​affichage géré par X-Window.
  
 <note warning> <note warning>
-Attention, l'​utilisation de l'​option -x (minuscule) bloque le canal X-Window, donc plus d'​affichage graphique possible.\\  +Attention, l'​utilisation de l'​option ​**-x** (minuscule) bloque le canal X-Window, donc plus d'​affichage graphique possible. 
-  ssh -x nomUtilisateur@Ipserver+<​code>​ssh -x nomUtilisateur@Ipserver</​code>​
 </​note>​ </​note>​
  
Ligne 106: Ligne 113:
  
 Pour copier un fichier à partir d'un ordinateur sur un autre avec SSH, vous devrez utiliser la commande **scp**. Cela ressemblera à ceci : Pour copier un fichier à partir d'un ordinateur sur un autre avec SSH, vous devrez utiliser la commande **scp**. Cela ressemblera à ceci :
-  ​scp <​fichier>​ <​username>​@<​ipaddressDistant>:<​DestinationDirectory>​ +<​code>​scp <​fichier>​ <​username>​@<​ipaddressDistant>:<​DestinationDirectory></​code
-  scp -6 <​élément>​ <​nom>​@[addresse ipv6]:<​destination> ​  +et en IPv6 
-\\ +<​code>​scp -6 <​élément>​ <​nom>​@[addresse ipv6]:<​destination>​</​code>​
  
-Ou en termes profanes, si l'on désirait copier un fichier d'un ordinateur à un autre, il faudrait procéder de cette manière : +==Exemples == 
-  scp fichier.txt hornbeck@192.168.1.103:​/home/hornbeck  +//__Pour un fichier:__//
-  scp -6 fichier.txt albertine@[2a01:​e35:​2431::​2a34]:/home/albertine  +
-\\ +
  
-Ou copier ​un répertoire ​vers un ordinateur ​+<​code>​scp fichier.txt hornbeck@192.168.1.103:/​home/​hornbeck</​code>​ 
-  scp -r répertoire hornbeck@192.168.1.103:/​home/​hornbeck/​ +et en IPv6 
-  scp -6r répertoire/​ albertine@[2a01:​e35:​2431::​2a34]:/​home/​albertine ​ +<​code>​scp -6 fichier.txt albertine@[2a01:​e35:​2431::​2a34]:/​home/​albertine</​code>​ 
-\\ + 
 +//​__Pour ​un répertoire:​__// 
 + 
 +<​code>​scp -r répertoire hornbeck@192.168.1.103:/​home/​hornbeck/​</​code>​ 
 +et en IPv6 
 +<​code>​scp -6r répertoire/​ albertine@[2a01:​e35:​2431::​2a34]:/​home/​albertine</​code>​
  
 Vous pouvez aussi bien copier des fichiers à partir des ordinateurs à distance sur votre disque local : Vous pouvez aussi bien copier des fichiers à partir des ordinateurs à distance sur votre disque local :
-  ​scp hornbeck@192.168.1.103:/​home/​hornbeck/​urls.txt . +<​code>​scp hornbeck@192.168.1.103:/​home/​hornbeck/​urls.txt .</​code>​ 
-\\ +Ici, le point **.** à la fin de commande indique de copier le fichier dans le répertoire courant.
  
-Le point à la fin de commande indique de copier le fichier dans le répertoire courant. ​Vous pouvez aussi le renommer en le copiant (« mon.txt ») sur le disque local : +Vous pouvez aussi le renommer en le copiant (« mon.txt ») sur le disque local (toujours dans le répertoire courant)
-  scp hornbeck@192.168.1.103:/​home/​hornbeck/​urls.txt ./mon.txt +<​code>​scp hornbeck@192.168.1.103:/​home/​hornbeck/​urls.txt ./mon.txt</​code>​
-\\ +
  
 Vous pouvez très bien copier un fichier d'un ordinateur vers un autre tout en étant sur un troisième ordinateur : Vous pouvez très bien copier un fichier d'un ordinateur vers un autre tout en étant sur un troisième ordinateur :
-  ​scp nom@ordi1:​chemin/​fichier nom@ordi2:​chemin/​fichier +<​code>​scp nom@ordi1:​chemin/​fichier nom@ordi2:​chemin/​fichier</​code>​
-\\ +
  
 Dans le cas où le port SSH du serveur ne serait pas le port par défaut (22), il faut indiquer le port distant à utiliser : Dans le cas où le port SSH du serveur ne serait pas le port par défaut (22), il faut indiquer le port distant à utiliser :
-  ​scp -P port fichier.txt hornbeck@192.168.1.103:/​home/​hornbeck +<​code>​scp -P port fichier.txt hornbeck@192.168.1.103:/​home/​hornbeck</​code>​
-\\+
  
 ==== Monter un répertoire distant, navigation via sftp (secure file transfer protocol) ==== ==== Monter un répertoire distant, navigation via sftp (secure file transfer protocol) ====
  
-SFTP est une autre méthode pour accéder à ses fichiers via SSH, au lieu de travailler fichier par fichier, il est possible ​via cette méthode de naviguer dans ses fichiers ​grâce à un client SFTP. Ce type d'​accès est possible grâce aux outils suivants :+[[wpfr>​SSH_file_transfer_protocol|SFTP]] est une autre méthode pour accéder à ses fichiers via SSH. Au lieu de travailler fichier par fichier, il est possible ​grâce à cette méthode de naviguer dans ses fichiers ​depuis ​un client SFTP. Ce type d'​accès est possible grâce aux outils suivants : 
 +<box 100% center #​FFFFFF>​ 
 +<box 15ex round left #​eeeeff>​**[[#​Nautilus]]**</​box>​ 
 +<box 15ex round left #​eeeeff>​**[[#​Konqueror]]**</​box>​ 
 +<box 15ex round left #​eeeeff>​**[[#​Dolphin]]**</​box>​ 
 +</​box>​ 
 +<box 100% center #​FFFFFF>​ 
 +<box 15ex round left #​eeeeff>​**[[#​WinSCP]]**</​box>​ 
 +<box 15ex round left #​eeeeff>​**[[#​FilleZilla]]**</​box>​ 
 +</​box>​
  
 === Nautilus === === Nautilus ===
  
-En utilisant le navigateur ​de fichier ​[[:​Nautilus]],​ vous pouvez également accéder aux emplacements à distance par l'​intermédiaire de SSH pour passer en revue, modifier et copier des fichiers. Ouvrez Nautilus, puis dans la fenêtre emplacement (Ctrl--L), entrez l'URL suivante ​(remplacez ​''​nom_utilisateur'',​ ''​hostname''​ et ''​port''​ en conséquence+En utilisant le [[:​gestionnaire ​de fichiers]] **[[:​Nautilus]]**, vous pouvez également accéder aux emplacements à distance par l'​intermédiaire de SSH pour passer en revue, modifier et copier des fichiers.\\ 
- +Ouvrez Nautilus, puis dans la fenêtre emplacement (Ctrl L), entrez l'URL suivante ​en remplaçant ​''​nom_utilisateur'',​ ''​hostname''​ et ''​port''​ en conséquence : 
- +<​code>​ssh://​nom_utilisateur@hostname:​port</​code>​
-   ssh://​nom_utilisateur@hostname:​port+
  
 La copie de fichier se fait avec le glisser-déposer dans la fenêtre de Nautilus comme sur votre système de fichiers local. La copie de fichier se fait avec le glisser-déposer dans la fenêtre de Nautilus comme sur votre système de fichiers local.
  
 Pour accéder directement à un répertoire donné (pratique avec l'​utilisation des signets), il suffit de rajouter le chemin en fin d'URL : Pour accéder directement à un répertoire donné (pratique avec l'​utilisation des signets), il suffit de rajouter le chemin en fin d'URL :
 +<​code>​ssh://​username@hostname:​port/​le/​chemin/​voulu/</​code>​
  
-   ​ssh://​username@hostname:​port/​le/​chemin/​voulu/​ +Il est également possible d'y avoir accès dans Nautilus par  le menu //Fichier ​-> Se connecter à un serveur...// et choisir le ''​Type de service''​ « ssh ».
- +
-Il est également possible d'y avoir accès dans Nautilus par : ''​Fichier > Se connecter à un serveur...'' ​et choisir le ''​Type de service''​ « ssh ».+
  
 === Konqueror === === Konqueror ===
  
-Le principe est similaire à celui utilisé par Nautilus, à l'​exception du nom de protocole : ''​fish''​. Dans la barre d'​adresse,​ tapez : +Le principe est similaire à celui utilisé par [[#Nautilus]], à l'​exception du nom de protocole : ''​fish''​.\\ 
- +Dans la barre d'​adresse,​ tapez : 
-  ​fish://<​nom_utilisateur>​@<​hostname>​ +<​code>​fish://<​nom_utilisateur>​@<​hostname>​</​code>​
 Une boîte de dialogue apparaîtra et demandera le mot de passe. Une boîte de dialogue apparaîtra et demandera le mot de passe.
  
-Attention, si vous ne mentionnez pas le nom d'​utilisateur,​ c'est l'​utilisateur courant sur la machine locale qui aura la main.+**Attention:** Si vous ne mentionnez pas le nom d'​utilisateur,​ c'est l'​utilisateur courant sur la machine locale qui aura la main.
  
 === Dolphin ​ === === Dolphin ​ ===
  
-Le nouveau navigateur de KDE permet de faire ça très simplement. Cliquez sur le raccourci ''​Réseau'',​ puis ''​Ajoutez un dossier réseau''​. Remplissez ensuite les champs demandés ​(n'​oubliez pas que votre adresse se trouve par ''​ifconfig'',​ à ''​inet adr:xxx.xxx.x.xx''​ dans ''​eth1''​ en général), et pensez ​à mettre la racine (''​/''​) comme dossier d'​accès pour pouvoir rentrer sur l'​intégralité de l'​ordinateur distant.+Le nouveau navigateur de [[:KDE]] permet de faire ça très simplement.\\ 
 +Cliquez sur le raccourci ''​Réseau'',​ puis ''​Ajoutez un dossier réseau''​. Remplissez ensuite les champs demandés. ​Pensez ​à mettre la racine (dossier **/**) comme dossier d'​accès pour pouvoir rentrer sur l'​intégralité de l'​ordinateur distant.
  
 Il est également possible de rentrer l'​adresse et d'​enregistrer le lien dans ses emplacements favoris : Il est également possible de rentrer l'​adresse et d'​enregistrer le lien dans ses emplacements favoris :
-  ​sftp://​nom_utilisateur@hostname:​port+<​code>​sftp://​nom_utilisateur@hostname:​port</​code>​
  
 === WinSCP === === WinSCP ===
  
-Parce qu'il est parfois nécessaire de faire un transfert de fichier à partir d'une machine sous MS Windows, il existe un logiciel libre nommé ''​WinSCP''​ qui permet de faire du ''​SFTP''​ (transfert de fichier par SSH) avec une interface semblable à celle des clients FTP.+Parce qu'il est parfois nécessaire de faire un transfert de fichier à partir d'une machine sous MS Windows, il existe un logiciel libre nommé ''​WinSCP''​ qui permet de faire du SFTP avec une interface semblable à celle des clients FTP.
  
 [[http://​winscp.net/​eng/​docs/​lang:​fr|Site officiel du logiciel WinSCP]] [[http://​winscp.net/​eng/​docs/​lang:​fr|Site officiel du logiciel WinSCP]]
  
-=== Filezilla ​===+=== FileZilla ​===
  
-Sans avoir à chercher trop loin, [[filezilla|FileZilla]],​ le client FTP compatible Linux, Windows et Mac OS X, permet aussi la connexion à un serveur SFTP (SSH File Transfer Protocol) depuis la version 3.+Sans avoir à chercher trop loin, [[:filezilla|FileZilla]],​ le client FTP compatible Linux, Windows et Mac OS X, permet aussi la connexion à un serveur SFTP (SSH File Transfer Protocol) depuis la version 3.
  
-==== Monter un réperoire ​distants ​de manière automatique (SFTP grâce à SSHFS) ====+==== Monter un réperoire ​distant ​de manière automatique (SFTP grâce à SSHFS) ====
  
-**SSHFS** est un outil permettant d'​utiliser le protocole **ssh** comme un système de fichier et ainsi monter un répertoire distant à travers le protocole ssh pour y accéder comme n'​importe quel répertoire local à la manière d'un partage [[:​nfs|NFS ​: Network File System - le partage réseau sous Linux]]; mais sécurisé ! \\+**SSHFS** est un outil permettant d'​utiliser le protocole **ssh** comme un système de fichier et ainsi monter un répertoire distant à travers le protocole ssh pour y accéder comme n'​importe quel répertoire local à la manière d'un partage [[:​nfs|NFS]];​ mais sécurisé ! \\
 Voir la page [[:​sshfs|SSH Filesystem]]. Voir la page [[:​sshfs|SSH Filesystem]].
  
Ligne 193: Ligne 207:
 L'​authentification par mot de passe (transmis chiffré) est le mode d'​identification par défaut. L'​authentification par mot de passe (transmis chiffré) est le mode d'​identification par défaut.
  
-Suite à l'​installation du paquet **openssh-server** il peut parfois être nécessaire de modifier le fichier de configuration ​''​/​etc/​ssh/​sshd_config'' ​notamment si vous rencontrez le problème suivant : +Suite à l'​installation du paquet **openssh-server** il peut parfois être nécessaire de modifier le fichier de configuration ​**/​etc/​ssh/​sshd_config** notamment si vous rencontrez le problème suivant : 
- +<​code>​moi@maison:​~$ ssh user@domain.com
-  ​moi@maison:​~$ ssh user@domain.com+
   Permission denied (publickey).   Permission denied (publickey).
- +</​code>​ 
-Dans ce cas, il faut très simplement [[:​tutoriel:​comment_editer_un_fichier|modifier le fichier]] ''​/​etc/​ssh/​sshd_config'' ​de la manière suivante :+Dans ce cas, il faut très simplement [[:​tutoriel:​comment_editer_un_fichier|modifier ​avec les droits d'​administration]] ​le fichier ​**/​etc/​ssh/​sshd_config** FIXME sur le serveur SSH de la manière suivante :
 <​file>​ <​file>​
 # Change to yes to enable tunnelled clear text passwords # Change to yes to enable tunnelled clear text passwords
Ligne 204: Ligne 217:
 </​file>​ </​file>​
  
-Puis en cas de modifications, ​redémarrer ​le service ​avec la commande :+Puis en cas de modifications, ​[[#​relancer]] ​le service.
  
-  sudo /​etc/​init.d/​ssh restart +<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é.\\ 
- +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.</​note>​
-<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 recommandé.  +
-Sinon utilisez des mots de passe longs et complexes+
-Utilisez aussi des systèmes de protection comme [[:fail2ban|Bannir ​des IP avec fail2ban]].</​note>​+
  
 ==== 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 ​//via// identifiant-mot de passe. Cependant si quelqu'​un connaît votre mot de passe, la sécurité est compromise. +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, la sécurité est compromise.\\
 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é). 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é).
  
Ligne 224: Ligne 231:
   * 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//​).
  
-À moins que vous n'ayez déjà un couple de clés, vous devez d'​abord en créer ​: exemple ​pour une clé utilisant le protocole de chiffrage RSA. Tapez chez le client :+À moins que vous n'ayez déjà un couple de clés, vous devez d'​abord en créer.\\ 
 +Exemple ​pour une clé utilisant le protocole de chiffrage RSA, vous saisirrez dans le [[:​terminal]] du client : 
 +<​code>​ssh-keygen -t rsa</​code>​
  
-  ​ssh-keygen -t rsa+Il vous sera alors demandé où sauver la clé privée (acceptez juste l'​endroit par défaut : **~/.ssh**, et ne changez pas le nom du fichier généré) puis de choisir une //​passphrase//​ (phrase de reconnaissance). 
 +<note warning>​Bien que non obligatoire,​ l'​utilisation d'une //​passphrase//​ est recommandée pour protéger votre clé privée. En effet toute personne qui obtiendrait l'​accès à votre clé privée (non protégée) aurait alors vos permissions sur d'​autres ordinateurs. Veuillez prendre un instant et choisissez une très bonne //​passphrase//​ c'est à dire longue et complexe.</​note>​
  
-Il vous sera alors demandé où sauver la clé privée (acceptez juste l'​endroit par défaut : ''​~/​.ssh'',​ et ne changez pas le nom du fichier généré) puis de choisir une //​passphrase//​ (phrase de reconnaissance). Bien que non obligatoire,​ l'​utilisation d'une //​passphrase//​ est recommandée pour protéger votre clé privée. En effet toute personne qui obtiendrait l'​accès à votre clé privée (non protégée) aurait alors vos permissions sur d'​autres ordinateurs. Veuillez prendre un instant et choisissez une très bonne //​passphrase//​ (longue et complexe, à écrire à la main dans votre calepin secret). +Votre clef publique a été créée avec la nouvelle clé privée. Elles sont habituellement localisées dans les [[:​fichier_cache|fichiers cachés]] **.ssh/​id_rsa.pub** pour la clé publique et **.ssh/id_rsa** pour la clé privée. ​
- +
-Votre clef publique a été créée avec la nouvelle clé privée. Elles sont habituellement localisées dans le dossier caché ''​~/​.ssh/​id_rsa.pub'' ​pour la clé publique et ''​~/​.ssh/id_rsa'' ​pour la clé privée.+
  
 Il faut maintenant envoyer au serveur votre clé publique pour qu'il puisse vous chiffrer des messages. Il faut maintenant envoyer au serveur votre clé publique pour qu'il puisse vous chiffrer des messages.
  
-L'​utilisateur distant doit avoir cette clé (c'est une ligne de caractères en code ASCII) dans son fichier de clés d'​autorisation situé à ''​~/​.ssh/​authorized_keys'' ​sur le système distant. Employez la commande //​ssh-copy-id//​. +L'​utilisateur distant doit avoir cette clé (c'est une ligne de caractères en code ASCII) dans son fichier de clés d'​autorisation situé à **~/​.ssh/​authorized_keys** sur le système distant. Employez la commande //​ssh-copy-id//​.
- +
-''​ssh-copy-id''​ est un script qui utilise ssh pour se connecter à une machine à distance en utilisant le mot de passe de l'​utilisateur. L'​authentification par mot de passe "​PasswordAuthentication yes" doit donc être autorisée dans le fichier de configuration du serveur ssh (par défaut sur Ubuntu). Il change également les permissions des répertoires : ''​~/​.ssh'',​ et ''​~/​.ssh/​authorized keys''​ de l'​hôte distant pour enlever l'​accès en écriture du groupe (qui vous empêcherait de vous connecter si le serveur distant ssh a "​StrictModes yes" dans son fichier de configuration,​ ce qui est le cas par défaut sur Ubuntu). +
- +
-  ssh-copy-id -i ~/​.ssh/​id_rsa.pub <​username>​@<​ipaddress>​+
  
 +//​ssh-copy-id//​ est un script qui utilise ssh pour se connecter à une machine à distance en utilisant le mot de passe de l'​utilisateur. L'​[[#​authentification par mot de passe]] doit donc être autorisée dans le fichier de configuration du serveur ssh (par défaut sur Ubuntu). Il change également les permissions des répertoires **~/.ssh** et **~/​.ssh/​authorized keys** de l'​hôte distant pour enlever l'​accès en écriture du groupe (qui vous empêcherait de vous connecter si le serveur distant ssh a "​StrictModes yes" dans son fichier de configuration,​ ce qui est le cas par défaut sur Ubuntu).
 +<​code>​ssh-copy-id -i ~/​.ssh/​id_rsa.pub <​username>​@<​ipaddress></​code>​
 ou si le port est différent du port standard 22 : ou si le port est différent du port standard 22 :
- +<​code>​ssh-copy-id -i ~/​.ssh/​id_rsa.pub "<​username>​@<​ipaddress>​ -p <​num_port>​</​code>​
-  ​ssh-copy-id -i ~/​.ssh/​id_rsa.pub "<​username>​@<​ipaddress>​ -p <​num_port>​"+
  
 Vous devrez alors donner le mot de passe //​utilisateur//​ de cet ordinateur. Après que votre clé publique ait été ajoutée, vous devenez un hôte de confiance. Vous devrez alors donner le mot de passe //​utilisateur//​ de cet ordinateur. Après que votre clé publique ait été ajoutée, vous devenez un hôte de confiance.
  
-Si l'​authentification par mot de passe est désactivée,​ alors vous aurez besoin de copier-coller votre clé suivant un autre moyen. +Si l'[[#authentification par mot de passe est désactivée]]((donc PasswordAuthentication **no** dans **/​etc/​ssh/​sshd_config** sur le serveur)) ​, alors vous aurez besoin de copier-coller votre clé suivant un autre moyen.\\
 Voici une ligne à copier pour ajouter sa clé publique sur le serveur distant : Voici une ligne à copier pour ajouter sa clé publique sur le serveur distant :
- +<​code>​ssh login@serveur "echo $(cat ~/​.ssh/​id_rsa.pub) >> .ssh/​authorized_keys"​</​code>​
-  ​ssh login@serveur "echo $(cat ~/​.ssh/​id_rsa.pub) >> .ssh/​authorized_keys"​ +
 Lancez : Lancez :
- +<​code>​ssh <​username>​@<​ipaddress>​ -p <​num_port>​</​code>​ 
-  ​ssh <​username>​@<​ipaddress>​ -p <​num_port>​ +Dorénavant n'​utilisez plus votre mot de passe mais votre **passphrase** pour vous connecter. ​Celle-ci sert à déchiffrer votre //clé privée// de votre système local.
- +
-Dorénavant n'​utilisez plus votre mot de passe mais votre **passphrase** pour vous connecter. ​Cette-ci sert à déchiffrer votre //clé privée// de votre système local.+
  
 Si ça ne marche pas, c'​est-à-dire que le mot de passe vous est quand même demandé, essayez sur votre serveur la commande : Si ça ne marche pas, c'​est-à-dire que le mot de passe vous est quand même demandé, essayez sur votre serveur la commande :
 +<​code>​tail -f /​var/​log/​auth.log</​code>​
 +tandis que vous essayez de vous connecter. Si on vous parle de "//​vulnkey//",​ c'est que par malchance ''​ssh-keygen''​ a généré une clé vulnérable. Recommencez alors la procédure depuis [[#​Authentification par un système de clés publique/​privée|le début]]((donc à partir de ''​ssh-keygen''​))
  
-  tail -f /​var/​log/​auth.log +Pour résumer, deux choses sont nécessaires pour obtenir un accès réellement sécurisant (et sécurisé ;-)) par authentification à clé publique par rapport à l'​authentification par mot de passe classique :
- +
-tandis que vous essayez de vous connecter. Si on vous parle de "//​vulnkey//",​ c'est que par malchance ''​ssh-keygen''​ a généré une clé vulnérable. Recommencez alors la manipulation à partir de ''​ssh-keygen''​... +
- +
-Pour reprendre, deux choses sont nécessaires pour obtenir un accès réellement sécurisant (et sécurisé ;-) ) par authentification à clé publique par rapport à l'​authentification par mot de passe classique :+
   - **Votre clé privée**, chiffrée ;   - **Votre clé privée**, chiffrée ;
   - **Votre passphrase**,​ utilisée pour déchiffrer votre clé privée.   - **Votre passphrase**,​ utilisée pour déchiffrer votre clé privée.
Ligne 273: Ligne 271:
  
 == Authentification par mot de passe et / ou par clé == == Authentification par mot de passe et / ou par clé ==
-Vous pouvez avoir avec SSH les deux modes d'​authentifications actifs en même temps, par mot de passe et par clées.+Vous pouvez avoir avec SSH les deux modes d'​authentifications actifs en même temps, par mot de passe et par clés.
  
-Vous pouvez vouloir neutraliser l'​authentification par mot de passe pour des raisons de sécurité ​en plaçant dans le fichier de configuration ​''​/​etc/​ssh/​sshd_config''​ la ligne ''​PasswordAuthentication''​ à ''​no''​ (et ne **pas** avoir ''​UsePAM''​ à ''​yes''​ !, ou autrement dit en mettant également ''​UsePAM''​ à ''​no''​). N'​oubliez pas de relancer votre serveur **sshd** après avoir changé ​la configuration ​:+Vous pouvez vouloir neutraliser l'​authentification par mot de passe pour des raisons de sécurité, pour cela il faut modifier ​le fichier de configuration ​**/​etc/​ssh/​sshd_config** de la manière suivante ​:
  
-  sudo /​etc/​init.d/​ssh restart+- A la ligne ''​PasswordAuthentication''​ mettre ''​no''​
  
-== Vulnérabilité des anciennes clés ==+- A la ligne ''​UsePAM''​ mettre "​no"​
  
-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. Voir la partie "​Correction vulnérabilité SSH" pour plus de détails mais en gros si vous avez généré vos clés sur entre 2006 et mai 2008, il faut générer de nouvelles clés après avoir mis à jour le système...+N'oubliez pas de [[#​relancer]] le service ssh sur votre serveur ​après avoir changé la configuration.
  
 +== Vulnérabilité des anciennes clés ==
 +
 +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. Pour résumer, si vous avez généré vos clés entre 2006 et mai 2008, il faut en créer de nouvelles après avoir mis à jour le système. Pensez alors à bien rediffuser vos clés.
  
 == Mot de passe toujours demandés avec authentification par clés == == Mot de passe toujours demandés avec authentification par clés ==
  
-Si après avoir suivi ce tutoriel un mot de passe est toujours demandé, il se peut que ce soit dû à un problème de droits sur votre 'home directory'​. Sur la machine distante regardez le fichier ​+Si après avoir suivi ce tutoriel un mot de passe est toujours demandé, il se peut que ce soit dû à un problème de [[:droits]] sur votre //Dossier Personnel//.\\ 
-  tail /​var/​log/​auth.log +Sur la machine distante ​[[:​tutoriel:​comment_modifier_un_fichier|regardez le fichier]] **/​var/​log/​auth/log** pour y trouver des indications ​et notamment ​et si la ligne suivante apparaît : 
-Plus d'indications ​vous seront données dedans, ​et si la ligne suivante apparaît : +<​file>​Authentication refused: bad ownership or modes for directory /​home/​votre_login</​file>​
-  Authentication refused: bad ownership or modes for directory /​home/​votre_login+
 Alors faites : Alors faites :
-  ​chmod 755 $HOME+<​code>​chmod 755 $HOME</​code>​
 Et tout devrait rentrer dans l'​ordre. Et tout devrait rentrer dans l'​ordre.
  
-Si ce n'est toujours pas le cas, c'est que le serveur doit être configuré en mode de sécurité strict (c'est le cas par défaut sur Ubuntu), on peut avoir des problèmes à se connecter sans mot de passe. Sur le serveur dans ''​/​etc/​ssh/​sshd_config''​, la ligne ''​StrictModes yes''​ indique que le serveur va être très pointilleux sur les droits du compte sur lequel on se connecte en ssh. Sur le client, dans ''​/etc/ssh/ssh_config'',​ rajoutez la ligne ''​PreferredAuthentications publickey''​ :+Si ce n'est toujours pas le cas, c'est que le serveur doit être configuré en mode de sécurité strict (c'est le cas par défaut sur Ubuntu).\\ 
 +Effectuez les opérations suivantes : 
 + 
 +Sur le serveur ​: \\ 
 +  * dans le fichier **/​etc/​ssh/​sshd_config**, la ligne ''​StrictModes yes''​ indique que le serveur va être très pointilleux sur les droits du compte sur lequel on se connecte en ssh.\\  
 +  * saisissez ensuite les commandes suivantes 
 +<​code>​chmod go-w ~/ 
 +chmod 700 ~/.ssh 
 +chmod 600 ~/.ssh/​authorized_keys</​code>​
  
-  ​server$ chmod go-w ~/ +  ​* Sur le client, dans **/etc/ssh/ssh_config**,​ rajoutez la ligne ''​PreferredAuthentications publickey''​.\\
-  server$ chmod 700 ~/.ssh +
-  server$ chmod 600 ~/.ssh/​authorized_keys+
  
 == Gestion des clés == == Gestion des clés ==
  
 Parfois les clés de vos correspondants peuvent changer (réinstallation de machine par exemple), vous aurez alors droit à ce charmant message : Parfois les clés de vos correspondants peuvent changer (réinstallation de machine par exemple), vous aurez alors droit à ce charmant message :
-  ​<​code>​+<​code>​
   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! ​    @   @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! ​    @
Ligne 317: Ligne 323:
   RSA host key for <ip> has changed and you have requested strict checking.   RSA host key for <ip> has changed and you have requested strict checking.
   Host key verification failed.   Host key verification failed.
-  ​</​code>​+</​code>​
   ​   ​
-Soit l'​information est exacte et une machine a été corrompue, ou bien il s'agit juste d'un changement de clé(réinstallation par exemple) et dans ce cas il faut effacer les entrées dans le fichier ​''​.ssh/​known_hosts'' ​de votre compte. Avant la chose était relativement simple, la clé était directement associée au nom ou à l'IP de la machine cible. Ce n'est plus le cas à présent où elle est associée par UUID rendant quasiment impossible l'​identification visuelle de la ligne concernée. Mais ssh étant sympathique,​ il vous indique quelle est la ligne du fichier concernée ​(dans l'​exemple précédent ​"Offending key.... :4" -> la clé en erreur est située ligne 4.+Soit l'​information est exacte et une machine a été corrompue, ou bien il s'agit juste d'un changement de clé (réinstallation par exemple) et dans ce cas il faut effacer les entrées dans le fichier ​**.ssh/​known_hosts** de votre compte.\\ 
 +Avant la chose était relativement simple, la clé était directement associée au nom ou à l'IP de la machine cible. Ce n'est plus le cas à présent où elle est associée par UUID rendant quasiment impossible l'​identification visuelle de la ligne concernée. Mais ssh étant sympathique,​ il vous indique quelle est la ligne du fichier concernée.\\ 
 +Pour reprendre ​l'​exemple précédent ​on peut lire la ligne Offending key in /​home/<​vous>/​.ssh/​known_hosts:4 → la clé en erreur est donc située ligne 4 du fichier **.ssh/​known_hosts**
  
-Il existe une méthode plus subtile en employant la commande suivante : +Il existe ​cependant ​une méthode plus subtile en employant la commande suivante : 
- +<​code>​ssh-keygen -R <ip></​code>
-  ​ssh-keygen -R <ip>+
   ​   ​
 Vous pourrez ainsi effacer seulement l'​adresse IP concernée et relancer un ssh. Vous pourrez ainsi effacer seulement l'​adresse IP concernée et relancer un ssh.
- 
  
 == Connexion à un répertoire /home chiffré == == Connexion à un répertoire /home chiffré ==
  
-Si vous souhaitez vous connecter par ssh avec une clef publique sur un compte dont le home est chiffré, il est important de faire attention à ce que sur le serveur le fichier/​dossier .ssh/​authorized_keys soit à la fois dans le home chiffré et déchiffré. En effet si le fichier authorized_keys est dans le home sous forme chiffré (.private), open_ssh ne pourra pas lire la clef publique attendue. Il faut donc créer un dossier .ssh et y mettre le fichier authorized_keys quand le home est démonté donc chiffré. Cependant, si vous ne le laissez pas aussi dans le home déchiffré et donc monté, la connexion ssh se fera avec la clef publique mais le home ne sera pas déchiffré automatiquement.+Si vous souhaitez vous connecter par ssh avec une clef publique sur un compte dont le home est chiffré, il est important de faire attention à ce que sur le serveur le fichier/​dossier ​**.ssh/​authorized_keys** soit à la fois dans le home chiffré et déchiffré. En effet si le fichier authorized_keys est dans le home sous forme chiffré (.private), open_ssh ne pourra pas lire la clef publique attendue. Il faut donc créer un dossier .ssh et y mettre le fichier authorized_keys quand le home est démonté donc chiffré. Cependant, si vous ne le laissez pas aussi dans le home déchiffré et donc monté, la connexion ssh se fera avec la clef publique mais le home ne sera pas déchiffré automatiquement.
  
-La meilleur solution est de créer des liens virtuels vers un dossier qui n'est pas soumis au chiffrage/​déchiffrage comme expliqué ​ici : https://​rohieb.wordpress.com/​2010/​10/​09/​84/​+La meilleur solution est de créer des liens virtuels vers un dossier qui n'est pas soumis au chiffrage/​déchiffrage comme expliqué ​[[https://​rohieb.wordpress.com/​2010/​10/​09/​84/​|ici]]
  
 == Authentification ssh avec plusieurs clés privées == == Authentification ssh avec plusieurs clés privées ==
Ligne 338: Ligne 344:
 Lorsque l'on se connecte à plusieurs serveurs, certains avec clé cryptée, d'​autres avec clé en clair, il faut pouvoir indiquer à ssh quelle clé on veut utiliser pour la connexion. Lorsque l'on se connecte à plusieurs serveurs, certains avec clé cryptée, d'​autres avec clé en clair, il faut pouvoir indiquer à ssh quelle clé on veut utiliser pour la connexion.
  
-Pour indiquer au client ssh la clé qu'il doit utiliser pour chacun des serveurs il faut créer le fichier ​''​~/​.ssh/​config'' ​(ou ''​/​etc/​ssh/​ssh_config'' ​pour tous les utilisateurs de la machine) dans lequel il faut spécifier pour chacun des serveurs la clé qui doit être utilisée : +Pour indiquer au client ssh la clé qu'il doit utiliser pour chacun des serveurs il faut créer le fichier ​**~/​.ssh/​config** (ou **/​etc/​ssh/​ssh_config** pour tous les utilisateurs de la machine) dans lequel il faut spécifier pour chacun des serveurs la clé qui doit être utilisée : 
- +<​file>​ 
-  Host adresse-serveur-sans-passphrase.com +Host adresse-serveur-sans-passphrase.com 
-  User votreutilisateur +User votreutilisateur 
-  IdentityFile ~/​.ssh/​key-sans-passphrase+IdentityFile ~/​.ssh/​key-sans-passphrase
   ​   ​
-  ​Host adresse-serveur-avec-passphrase.com +Host adresse-serveur-avec-passphrase.com 
-  User votreutilisateur +User votreutilisateur 
-  IdentityFile ~/​.ssh/​key-avec-passphrase+IdentityFile ~/​.ssh/​key-avec-passphrase 
 +</​file>​
  
-<note tip> +Pour plus d'​options,​ comme l'​utilisateur ou le port à utiliser par défaut, voir le [[:​man|manuel]] de **ssh_config**.
-Pour plus d'​options,​ comme l'​utilisateur ou le port à utiliser par défaut, voir la commande ​**man ssh_config**+
-</​note>​ +
-l'​astuce pour différencier les clefs avec passphrase de celles sans passphrase, serait de créer une clef de type ECDSA pour les identifications sans passphrase et DSA pour les identifications avec passphrase+
  
-Ce qui donnerait : +<note tip>​L'​astuce ​pour différencier les clefs avec passphrase de celles sans passphraseserait de créer une clef de type [[wpfr>​ECDSA]] pour les identifications sans passphrase ​et [[wpfr>​Digital_Signature_Algorithm|DSA]] pour les identifications avec passphrase
-IdentityFile ~/​.ssh/​id_ecrsa.pub +
-pour le premier, et+
-IdentityFile ~/.ssh/​id_rsa.pub +
-pour le second+
  
 +Ce qui donnerait pour le premier:
 +<​file>​IdentityFile ~/​.ssh/​id_ecrsa.pub</​file>​
 +et pour le second
 +<​file>​IdentityFile ~/​.ssh/​id_rsa.pub</​file></​note>​
  
 == Les empreintes (fingerprint) == == Les empreintes (fingerprint) ==
  
 Retrouver l'​empreinte de notre clef ssh, pour la communiquer à une personne qui veut se connecter et va utiliser notre clef publique : Retrouver l'​empreinte de notre clef ssh, pour la communiquer à une personne qui veut se connecter et va utiliser notre clef publique :
-<​code>​ssh-keygen -l</​code>​ +<​code>​ssh-keygen -l</​code>​ 
-Ensuite la commande demande le fichier de la clef publique. Sur un serveur on spécifiera ​''​/​etc/​ssh/​ssh_host_rsa_key.pub''​.+Ensuite la commande demande le fichier de la clef publique. Sur un serveur on spécifiera ​**/​etc/​ssh/​ssh_host_rsa_key.pub**.
  
 ===== Configuration du serveur SSH ===== ===== Configuration du serveur SSH =====
-La configuration par défaut du serveur SSH sous Ubuntu est suffisante pour fonctionner correctement. Le fichier de configuration ​est  « /​etc/​ssh/​sshd_config ». +La configuration par défaut du serveur SSH sous Ubuntu est suffisante pour fonctionner correctement. Le fichier de configuration ​à [[:​tutoriel:​comment_editer_un_fichier|éditer avec les droits d'​administration]] est  **/etc/ssh/sshd_config**.
- +
-Vous pouvez éditer ce [[:​tutoriel:​comment_editer_un_fichier|fichier]] //via// [[:sudo]] comme il se doit.+
  
 Tableau des principales directives à modifier le cas échéant : Tableau des principales directives à modifier le cas échéant :
Ligne 387: Ligne 389:
 Informations et éléments de configurations sécuritaires avancées, voir [[http://​www.cyberciti.biz/​tips/​linux-unix-bsd-openssh-server-best-practices.html|cyberciti]] Informations et éléments de configurations sécuritaires avancées, voir [[http://​www.cyberciti.biz/​tips/​linux-unix-bsd-openssh-server-best-practices.html|cyberciti]]
  
 +---- 
 +//​Contributeurs:​ [[:​utilisateurs:​sx1]]//​
  • utilisateurs/sx1/ssh_bases.1330376332.txt.gz
  • Dernière modification: Le 27/02/2012, 21:58
  • par sx1