reseau:certificat:certificatsopenssh
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:certificat:certificatsopenssh [2026/06/28 20:23] – [Gestion des serveurs connus] techer.charles_educ-valadon-limoges.fr | reseau:certificat:certificatsopenssh [2026/06/28 23:13] (Version actuelle) – techer.charles_educ-valadon-limoges.fr | ||
|---|---|---|---|
| Ligne 96: | Ligne 96: | ||
| </ | </ | ||
| + | ===== Inconvénients de l' | ||
| + | Les clés publiques d'un serveur peuvent être changées et ne plus être celles | ||
| + | De même, il n'est pas possible d garantir que la clé publique d'un client est légitime. | ||
| + | L' | ||
| + | |||
| + | La signature du certificat est un haché des données du certificat chiffrée par la clé privée de l' | ||
| + | |||
| + | En utilisant la clé publique de l' | ||
| + | |||
| + | ===== Génération des certificats OpenSSH ===== | ||
| + | OpenSSH permet de générer des certificat spécifiques à OpenSSH. Ce ne sont pas des certificats x509 utilisés avec SSL/TLS (https, sftp, etc.) | ||
| + | |||
| + | La création d'un certificat utilisateur ou serveur nécessite la signature par une clé privée qui représente alors l' | ||
| + | |||
| + | |||
| + | |||
| + | <WRAP center round info> | ||
| + | L' | ||
| + | </ | ||
| + | |||
| + | Pour cette démarche, la CA sera hébergée sur le serveur distant. | ||
| + | |||
| + | ==== création de la clé privée sur le serveur distant avec le nom ca\_key ==== | ||
| + | |||
| + | < | ||
| + | $ ssh-keygen -f ca_key -C "SSH cle privee de la CA" | ||
| + | </ | ||
| + | |||
| + | |||
| + | Cela génère 2 fichiers : | ||
| + | * ca_key : clé privée de la CA | ||
| + | * ca_key.pub : clé publique de la CA | ||
| + | |||
| + | ==== Création d'un certificat pour le client ==== | ||
| + | |||
| + | Pour la création du certificat du client, il est nécessaire de préciser : | ||
| + | * -s : la clé privée de la CA qui signe le certificat | ||
| + | * -I : l' | ||
| + | * -n : le login autorisé pour ce client sur le serveur. Il s'agit dans l' | ||
| + | * -V : la validité du certificat. En général une année. | ||
| + | * la clé publique de l' | ||
| + | |||
| + | * Transférez sur le serveur de CA la clé publique de l' | ||
| + | |||
| + | < | ||
| + | $ scp ~/ | ||
| + | </ | ||
| + | |||
| + | * Sur le serveur de CA, utilisez la commande suivante : | ||
| + | |||
| + | < | ||
| + | $ ssh-keygen -s ca_key -I CLIENT-CHARLES -n sio -V +365d id_ed52519.pub | ||
| + | </ | ||
| + | |||
| + | Le certificat a été généré et le fichier obtenu porte le nom de la clé publique en ajoutant -cert. | ||
| + | |||
| + | La commande suivant permet de visualiser le contenu du certificat : | ||
| + | < | ||
| + | $ ssh-keygen -L -f id_ed25519-cert.pub | ||
| + | id_ed25519-cert.pub: | ||
| + | Type: ssh-ed25519-cert-v01@openssh.com user certificate | ||
| + | Public key: ED25519-CERT SHA256: | ||
| + | Signing CA: ED25519 SHA256: | ||
| + | Key ID: " | ||
| + | Serial: 0 | ||
| + | Valid: from 2026-06-28T20: | ||
| + | Principals: | ||
| + | sio | ||
| + | Critical Options: (none) | ||
| + | Extensions: | ||
| + | permit-X11-forwarding | ||
| + | permit-agent-forwarding | ||
| + | permit-port-forwarding | ||
| + | permit-pty | ||
| + | permit-user-rc | ||
| + | |||
| + | </ | ||
| + | |||
| + | Remarques : | ||
| + | * il s'agit d'un certificat utilisateur : Type user certificate | ||
| + | * ce n'est pas un certificat autosigné car l' | ||
| + | * le principal est sio, c'est à dire le login associé à ce certificat | ||
| + | |||
| + | * Transférez sur le client le certificat client nouvellement généré et placez le dans le dossier .ssh de l' | ||
| + | |||
| + | < | ||
| + | $ scp sio@adresseIPCA:/ | ||
| + | </ | ||
| + | |||
| + | ==== Création du certificat pour le serveur distant ==== | ||
| + | |||
| + | Pour la création du certificat du serveur il est nécessaire de préciser : | ||
| + | * -s : la clé privée de la CA qui signe le certificat | ||
| + | * -I : l' | ||
| + | * -h : précise qu'il s'agit d'un certificat serveur. | ||
| + | * -n : les noms / adresse IP du serveur. | ||
| + | * -V : la validité du certificat. En général une année. | ||
| + | * la clé publique du serveur situé dans le dossier /etc/ssh qui est nécessaire pour créer son certificat | ||
| + | |||
| + | * Sur le serveur de CA, utilisez la commande suivante, en utilisant sudo afin que le certificat puisse être sauvegardé dans le dossier /etc/ssh : | ||
| + | |||
| + | < | ||
| + | $ sudo ssh-keygen -s ca_key -I SERVEUR-LOCAL -h -n localhost, | ||
| + | </ | ||
| + | |||
| + | |||
| + | La commande suivante permet de visualiser le contenu du certificat serveur : | ||
| + | < | ||
| + | $ ssh-keygen -L -f / | ||
| + | / | ||
| + | Type: ssh-ed25519-cert-v01@openssh.com host certificate | ||
| + | Public key: ED25519-CERT SHA256: | ||
| + | Signing CA: ED25519 SHA256: | ||
| + | Key ID: " | ||
| + | Serial: 0 | ||
| + | Valid: from 2026-06-28T20: | ||
| + | Principals: | ||
| + | localhost | ||
| + | 127.0.0.1 | ||
| + | adresseIP | ||
| + | Critical Options: (none) | ||
| + | Extensions: (none) | ||
| + | |||
| + | </ | ||
| + | |||
| + | Remarques : | ||
| + | * il s'agit d'un certificat utilisateur : Type host certificate | ||
| + | |||
| + | * Configuration du serveur SSH pour utiliser ce certificat en modifiant le fichier **/ | ||
| + | |||
| + | < | ||
| + | ... | ||
| + | HostKey / | ||
| + | HostCertificate / | ||
| + | ... | ||
| + | </ | ||
| + | |||
| + | * lançez manuellement le serveur en mode debug, pour visualiser qu'il charge bien les 2 fichiers (la clé privée et le certificat) : | ||
| + | |||
| + | < | ||
| + | $ sudo / | ||
| + | sudo / | ||
| + | </ | ||
| + | |||
| + | * redémarrez le service SSH | ||
| + | |||
| + | < | ||
| + | $ sudo systemctl restart ssh | ||
| + | </ | ||
| + | |||
| + | ==== Configuration du client pour pour vérifier le certificat du serveur ==== | ||
| + | |||
| + | * transférez le fichier de la clé publique de la CA au client afin de disposer de son contenu : | ||
| + | * | ||
| + | |||
| + | Il est nécessaire d' | ||
| + | |||
| + | < | ||
| + | $ scp sio@adresseIPCA:/ | ||
| + | </ | ||
reseau/certificat/certificatsopenssh.1782671019.txt.gz · Dernière modification : 2026/06/28 20:23 de techer.charles_educ-valadon-limoges.fr
