reseau:debian:clesshcertificat
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:clesshcertificat [2025/07/02 12:15] – [Validation généralisée de certificats] admin | reseau:debian:clesshcertificat [2025/07/02 12:47] (Version actuelle) – [Révocation globale de clés] admin | ||
---|---|---|---|
Ligne 73: | Ligne 73: | ||
<WRAP center round info> | <WRAP center round info> | ||
* Une passphrase permet de protéger la clé privée. | * Une passphrase permet de protéger la clé privée. | ||
- | Par défaut les clé sont enregistrées dans le dossier **.ssh** : | ||
- | * la **clé privée** s' | ||
- | * la **clé publique** s' | ||
- | <WRAP center round important> | ||
- | Une 2e sécurité est nécessaire pour la clé privée : il est nécessaire de **changer les droits d' | ||
- | < | ||
- | chmod 600 .ssh/id_rsa | ||
- | </ | ||
- | </ | ||
</ | </ | ||
===== Format d’une clé publique ssh ===== | ===== Format d’une clé publique ssh ===== | ||
Ligne 177: | Ligne 168: | ||
Pour indiquer qu'un serveur particulier, | Pour indiquer qu'un serveur particulier, | ||
</ | </ | ||
- | |||
- | |||
| | ||
- | ===== Mise en place du certificat serveur au niveau du client | + | ==== Mise en place du certificat serveur au niveau du client ==== |
La configuration du client permet à celui-ci de faire confiance à n' | La configuration du client permet à celui-ci de faire confiance à n' | ||
Ligne 247: | Ligne 236: | ||
* paramètre **-s** pour indiquer la clé privée qui va **signer** : sa propre clé privée ou celle de la CA OpenSSH | * paramètre **-s** pour indiquer la clé privée qui va **signer** : sa propre clé privée ou celle de la CA OpenSSH | ||
* le paramètre **-I** pour indiquer l' | * le paramètre **-I** pour indiquer l' | ||
+ | |||
+ | Il est cependant indispensable de préciser : | ||
+ | * une ou plusieurs valeurs de **principals** avec le paramètre -n chaque **principal** est un nom d' | ||
Le nom du fichier de certificat est généré en ajoutant **-cert.pub** au nom de la clé publique. | Le nom du fichier de certificat est généré en ajoutant **-cert.pub** au nom de la clé publique. | ||
Ligne 254: | Ligne 246: | ||
< | < | ||
- | ssh-keygen -s / | + | ssh-keygen -s / |
+ | -z 1 | ||
+ | -n charles | ||
+ | id_rsa.pub | ||
</ | </ | ||
* transférez le certificat sur le poste du client dans son dossier **.ssh** | * transférez le certificat sur le poste du client dans son dossier **.ssh** | ||
+ | |||
+ | Le paramètre -L permet d' | ||
+ | < | ||
+ | ssh-keygen -L -f / | ||
+ | / | ||
+ | Type: ecdsa-sha2-nistp256-cert-v01@openssh.com user certificate | ||
+ | Public key: ECDSA-CERT SHA256: | ||
+ | Signing CA: ECDSA SHA256: | ||
+ | Key ID: " | ||
+ | Serial: 1 | ||
+ | Valid: forever | ||
+ | Principals: | ||
+ | charles | ||
+ | Critical Options: (none) | ||
+ | Extensions: | ||
+ | permit-X11-forwarding | ||
+ | permit-agent-forwarding | ||
+ | permit-port-forwarding | ||
+ | permit-pty | ||
+ | permit-user-rc | ||
+ | </ | ||
+ | |||
+ | Commentaires : | ||
+ | * le champ **Pricipals** indique le nom d' | ||
+ | * l' | ||
+ | * l' | ||
===== Validation d'un certificat de client SSH ===== | ===== Validation d'un certificat de client SSH ===== | ||
Ligne 287: | Ligne 308: | ||
+ | <WRAP center round info> | ||
+ | L' | ||
+ | </ | ||
+ | |||
+ | ==== Révocation globale de clés==== | ||
+ | Au niveau du serveur SSH, la révocation de clés publiques se fait à l'aide de la directive **RevokedKeys** en précisantle nom du fichier global contenant la liste des clés qui doivent être refusées. Cela fonctionne pour toutes les clés publiques, même s'il n'y a pas de certificat associé à la clé. | ||
+ | |||
+ | < | ||
+ | TrustedUserCAKeys / | ||
+ | RevokedKeys / | ||
+ | </ | ||
| | ||
+ | ==== Utilisation du fichier authorized_principals ==== | ||
+ | Sur le serveur SSH, l' | ||
+ | |||
+ | < | ||
+ | AuthorizedPrincipalsFile .ssh/ | ||
+ | </ | ||
+ | |||
+ | Dans ce cas-là, le serveur vérifie qu'un nom de la liste des **principals** du certificat qu'on lui propose apparaît bien dans le fichier **.ssh/ | ||
+ | |||
+ | Depuis le paragraphe 5.1, le certificat de l' | ||
+ | cb | ||
+ | contientles valeurs | ||
+ | cb | ||
+ | , | ||
+ | borelly | ||
+ | et | ||
+ | root | ||
+ | . Il suffit donc d' | ||
+ | authorized_principals | ||
+ | ducompte auquel on désire accéder. | ||
+ | Le mode debug du serveur SSH nous indique que ce fichier est maintenant bien analysé en premier lieu quand l' | ||
+ | cb | ||
+ | tente de se connecter sur le compte de | ||
+ | root | ||
+ | avec ce certificat : | ||
+ | root@pccb ~# echo borelly > / | ||
+ | root@pccb ~# / | ||
+ | ... | ||
+ | Failed publickey | ||
===== Mise en place côté client ===== | ===== Mise en place côté client ===== | ||
reseau/debian/clesshcertificat.1751451329.txt.gz · Dernière modification : 2025/07/02 12:15 de admin