reseau:debian:clessh
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
reseau:debian:clessh [2020/11/27 11:26] – [Présentation] techer.charles_educ-valadon-limoges.fr | reseau:debian:clessh [2025/05/27 22:24] (Version actuelle) – [Configuration de l'accès SSH] admin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Configurer une authentification avec un couple de clés privée/ | ====== Configurer une authentification avec un couple de clés privée/ | ||
- | ==== Présentation ==== | ||
- | Pour administrer un serveur Linux, vous pouvez utiliser le compte **root** ou, ce qui est fortement conseillé, un compte que vous avez créé et à qui vous avez permis une **élévation de privilèges**. | + | ===== Présentation ===== |
+ | |||
+ | Pour administrer un serveur Linux, vous pouvez utiliser le compte **root** ou, ce qui est fortement conseillé, un compte que vous avez créé et à qui vous avez permis une **élévation de privilèges** pour permettre l' | ||
Si vous gérez un autre serveur, il est également fortement conseillé d' | Si vous gérez un autre serveur, il est également fortement conseillé d' | ||
Ligne 12: | Ligne 13: | ||
* utiliser des **clés SSH publique**. | * utiliser des **clés SSH publique**. | ||
- | Vous aller configurer | + | Vous aller configurer le compte linux que vous avez créé afin de permettre d' |
- | Vous utiliserez **votre propre clé publique SSH** pour vous connecter. | + | |
- | Vous permettrez à l' | + | |
+ | |||
+ | Après la création de votre **couple de clés Privée/ | ||
- | Après la création de votre **couple de clés Privée/ | ||
Votre clé publique sera rajoutée à la page des clés SSH du BTS SIO à la page : | Votre clé publique sera rajoutée à la page des clés SSH du BTS SIO à la page : | ||
* [[clessh: | * [[clessh: | ||
+ | |||
+ | <WRAP center round info> | ||
+ | * En utilisant **mot de passe**, vous utilisez **un seul facteur** d' | ||
+ | * En utilisant une **clé publique SSH,** vous utilisez également **un seul facteur** d' | ||
+ | </ | ||
+ | |||
+ | Vous pouvez utiliser la **même clé publique SSH sur plusieurs serveurs** en ne retenant qu'un seul mot de passe, celui de la passphrase qui protège de votre clé privée. | ||
+ | |||
+ | <WRAP center round info> | ||
+ | Après avoir configuré une authentification avec une clé SSH publique, il est conseillé de **désactiver** l' | ||
+ | |||
+ | </ | ||
+ | |||
+ | Pour en savoir plus : https:// | ||
+ | |||
+ | ===== La confiance entre client et serveur ===== | ||
+ | |||
+ | Les clefs SSH permettent aussi de garantir l' | ||
+ | * Le client qui se connecte à un serveur par SSH doit avoir **confiance en l' | ||
+ | * Pour accorder l' | ||
+ | |||
+ | ==== Authentification du client par le serveur ==== | ||
+ | Pour que le serveur fasse confiance au client qui tente de se connecter, l' | ||
+ | |||
+ | Lors de la connexion au serveur, le client utilise la clef SSH privée de l' | ||
+ | |||
+ | ==== Authentification du serveur par le client ==== | ||
+ | Lors de sa première connexion à un serveur, le client enregistre une clef publique fournie par le serveur en supposant qu'il s'agit bien de la clef serveur de l' | ||
+ | |||
+ | Avant de faire confiance au serveur, le client va demander à l' | ||
+ | |||
+ | Cela se présente de cette manière : | ||
+ | < | ||
+ | ~$ ssh lab.example.org | ||
+ | The authenticity of host ' | ||
+ | ECDSA key fingerprint is SHA256: | ||
+ | Are you sure you want to continue connecting (yes/ | ||
+ | Warning: Permanently added ' | ||
+ | </ | ||
+ | |||
+ | Si l' | ||
+ | |||
+ | La commande **ssh-keygen -F < | ||
+ | |||
+ | < | ||
+ | ~$ ssh-keygen -F lab.example.org | ||
+ | # Host lab.example.org found: line 133 | ||
+ | |1|4M/ | ||
+ | </ | ||
+ | |||
+ | Lors des connexions suivantes, le client va rechercher de la même façon dans le fichier **~/ | ||
+ | * Si la clef publique ainsi conservée correspond bien à la clef privée utilisée par le serveur, le client va faire confiance au serveur et procéder ensuite à sa propre authentification. | ||
+ | * Si ce n'est pas le cas, le client interrompt la connexion et affiche à l' | ||
+ | |||
+ | On remarque qu'une **faiblesse du protocole** existe à ce niveau puisqu' | ||
+ | |||
+ | Ce risque peut être écarté si les clefs publiques des serveurs sont distribuées par d' | ||
+ | |||
+ | Une variante de cette solution est facilitée dans les versions récentes d' | ||
+ | |||
+ | ==== Générer une paire de clé SSH depuis un client OpenSSH==== | ||
+ | Générer une paire de clés privée/ | ||
+ | <WRAP center round info > | ||
+ | Il est conseillé de protéger l' | ||
+ | </ | ||
+ | |||
+ | <code shell> | ||
+ | $ ssh-keygen | ||
+ | |||
+ | Generating public/ | ||
+ | Enter file in which to save the key (/ | ||
+ | Enter passphrase (empty for no passphrase): | ||
+ | Enter same passphrase again: | ||
+ | Your identification has been saved in / | ||
+ | Your public key has been saved in / | ||
+ | The key fingerprint is: | ||
+ | SHA256: | ||
+ | The key's randomart image is: | ||
+ | +---[RSA 2048]----+ | ||
+ | | .. .o .o | | ||
+ | | ..= +oo | | ||
+ | | + @ +.+| | ||
+ | | | ||
+ | | o S . + .| | ||
+ | | | ||
+ | | . ..o=.+| | ||
+ | | . . ..+=.*+| | ||
+ | | . .. oo+=EB| | ||
+ | +----[SHA256]-----+ | ||
+ | $ | ||
+ | </ | ||
+ | |||
+ | Dans le dossier caché **.ssh** (sous Windows Linux ou MacOsX) vous avez votre couple de clés privée (id_rsa) et publique (id_rsa.pub). | ||
+ | <code shell> | ||
+ | $ ls .ssh | ||
+ | id_rsa | ||
+ | $ | ||
+ | </ | ||
+ | |||
+ | <WRAP center round info> | ||
+ | Un autre fichier **know\_hosts** sera ensuite créé dans le dossier **.ssh** afin de contenir **les clés publiques des serveurs** sur lesquels vous vous êtes authentifié avec un mot de passe ou une clé SSH publique. | ||
+ | * Pour retrouver l' | ||
+ | |||
+ | <code shell> | ||
+ | $ ssh-keygen -H -F < | ||
+ | </ | ||
+ | |||
+ | * Pour supprimer une seule entrée de known_hosts: | ||
+ | |||
+ | <code shell> | ||
+ | # ssh-keygen -R < | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== Configurer un accès SSH avec une clé SSH depuis un client OpenSSH==== | ||
+ | |||
+ | * Copiez ensuite votre clé publique sur le serveur auquel vous souhaitez accéder avec la clé SSH. | ||
+ | |||
+ | <code shell> | ||
+ | $ ssh-copy-id utilisateur@IP_ordinateur_cible | ||
+ | </ | ||
+ | |||
+ | <WRAP center round info> | ||
+ | La clé publique est copiée dans le fichier **.ssh/ | ||
+ | </ | ||
+ | |||
+ | <WRAP center round info> | ||
+ | La commande ssh-copy-id n'est pas disponible sous Windows. Vous pouvez alors : | ||
+ | * utiliser la commande **scp** pour copier le fichier | ||
+ | * ouvrir une session ssh pour pouvoir ensuite ajouter le contenu du fichier id_rsa.pub dans le fichier authorized_keys : | ||
+ | <code shell> | ||
+ | C:> scp .ssh/ | ||
+ | C:> ssh compteutilisateur@adresseip | ||
+ | $ cat id_rsa.pub >> .ssh/ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Vous devez maintenant pouvoir vous connecter sans mot de passe au serveur distant : | ||
+ | <code shell> | ||
+ | $ ssh utilisateur@IP_ordinateur_cible | ||
+ | </ | ||
+ | |||
+ | Il est fortement conseillé ensuite de désactiver l' | ||
+ | * Décommentez la ligne suivante en mettant sa valeur à **no** : | ||
+ | <code shell> | ||
+ | PasswordAuthentication no | ||
+ | </ | ||
+ | * Modifiez la ligne suivante pour mettre sa valeur à **no** : | ||
+ | <code shell> | ||
+ | ChallengeResponseAuthentication no | ||
+ | </ | ||
+ | |||
+ | * sauvegardez le fichier **/ | ||
+ | <code shell> | ||
+ | $ sudo systemctl restart ssh | ||
+ | </ | ||
+ | |||
+ | |||
+ | Pour en savoir plus : | ||
+ | * {{https:// | ||
+ | |||
+ | |||
==== Génération des clés avec PuttyGen ==== | ==== Génération des clés avec PuttyGen ==== | ||
Ligne 39: | Ligne 204: | ||
* Utilisez **WinSCP** pour vous connecter avec le compte **root** sur votre VM Debian. | * Utilisez **WinSCP** pour vous connecter avec le compte **root** sur votre VM Debian. | ||
* Créez dans le dossier **/root** un dossier **.ssh** et un fichier **/ | * Créez dans le dossier **/root** un dossier **.ssh** et un fichier **/ | ||
+ | |||
{{ : | {{ : | ||
+ | |||
* Copiez dans ce fichier le contenu de votre **clé publique**. | * Copiez dans ce fichier le contenu de votre **clé publique**. | ||
* Créez dans le dossier du compte **/ | * Créez dans le dossier du compte **/ |
reseau/debian/clessh.1606472799.txt.gz · Dernière modification : 2020/11/27 11:26 de techer.charles_educ-valadon-limoges.fr