45.4. Gestion des clés SSH publiques pour les hôtes
OpenSSH utilise des clés publiques pour authentifier les hôtes. Une machine tente d'accéder à une autre machine et présente sa paire de clés. La première fois que l'hôte s'authentifie, l'administrateur de la machine cible doit approuver la demande manuellement. La machine stocke ensuite la clé publique de l'hôte dans un fichier known_hosts
. Chaque fois que la machine distante tente à nouveau d'accéder à la machine cible, cette dernière vérifie son fichier known_hosts
et accorde automatiquement l'accès aux hôtes approuvés.
45.4.1. Téléchargement de clés SSH pour un hôte à l'aide de l'interface Web IdM
La gestion des identités vous permet de télécharger une clé publique SSH dans une entrée d'hôte. OpenSSH utilise des clés publiques pour authentifier les hôtes.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'interface Web IdM ou rôle d'administrateur des utilisateurs.
Procédure
Vous pouvez récupérer la clé de votre hôte à partir d'un fichier
~/.ssh/known_hosts
. Par exemple, vous pouvez récupérer la clé de votre hôte à partir d'un fichier :server.example.com,1.2.3.4 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAQEApvjBvSFSkTU0WQW4eOweeo0DZZ08F9Ud21xly6FOhzwpXFGIyxvXZ52 siHBHbbqGL5 14N7UvElruyslIHx9LYUR/pPKSMXCGyboLy5aTNl5OQ5EHrhVnFDIKXkvp45945R7SKYCUtRumm0Iw6wq0XD4o ILeVbV3wmcB1bXs36ZvC/M6riefn9PcJmh6vNCvIsbMY6S FhkWUTTiOXJUDYRLwM273FfWhzHK SSQXeBp/zIn1gFvJhSZMRi9HZpDoqxLbBB9QIdIw6U4MIjNmKsSI/ASpkFm2GuQ7ZK9KuMItY2AoCuIRmRAF8iYNHBTXfFurGogXwRDjQ==
Vous pouvez également générer une clé d'hôte. Voir Générer des clés SSH.
Copiez la clé publique du fichier de clés. L'entrée complète de la clé a la forme
host name,IP type key==
. Seul lekey==
est nécessaire, mais vous pouvez stocker l'ensemble de l'entrée. Pour utiliser tous les éléments de l'entrée, réorganisez l'entrée de manière à ce qu'elle ait l'ordretype key== [host name,IP]
.cat /home/user/.ssh/host_keys.pub ssh-rsa AAAAB3NzaC1yc2E...tJG1PK2Mq++wQ== server.example.com,1.2.3.4
- Connectez-vous à l'interface Web IdM.
-
Allez dans l'onglet
Identity>Hosts
. - Cliquez sur le nom de l'hôte à modifier.
-
Dans la section
Host Settings
, cliquez sur le bouton Clé publique SSHAdd
. -
Collez la clé publique de l'hôte dans le champ
SSH public key
. -
Cliquez sur
Set
. -
Cliquez sur
Save
en haut de la fenêtre de l'interface Web IdM.
Vérification
-
Dans la section
Hosts Settings
, vérifiez que la clé est répertoriée sousSSH public keys
.
45.4.2. Téléchargement de clés SSH pour un hôte à l'aide de la CLI IdM
La gestion des identités vous permet de télécharger une clé publique SSH dans une entrée d'hôte. OpenSSH utilise des clés publiques pour authentifier les hôtes. Les clés SSH d'hôte sont ajoutées aux entrées d'hôte dans IdM, lorsque l'hôte est créé à l'aide de host-add
ou en modifiant l'entrée ultérieurement.
Remarque Les clés hôte RSA et DSA sont créées par la commande ipa-client-install
, sauf si le service SSH est explicitement désactivé dans le script d'installation.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou rôle d'administrateur des utilisateurs.
Procédure
Exécutez la commande
host-mod
avec l'option--sshpubkey
pour télécharger la clé publique codée en base64 dans l'entrée de l'hôte.Étant donné que l'ajout d'une clé d'hôte modifie l'enregistrement DNS Secure Shell fingerprint (SSHFP) de l'hôte, utilisez l'option
--updatedns
pour mettre à jour l'entrée DNS de l'hôte. Par exemple, vous pouvez utiliser l'option pour mettre à jour l'entrée DNS de l'hôte :$ ipa host-mod --sshpubkey="ssh-rsa RjlzYQo==" --updatedns host1.example.com
Une clé réelle se termine généralement par un signe égal (=), mais elle est plus longue.
Pour télécharger plus d'une clé, entrez plusieurs paramètres de ligne de commande --sshpubkey :
--sshpubkey="RjlzYQo==" --sshpubkey="ZEt0TAo=="
NoteUn hôte peut avoir plusieurs clés publiques.
- Après avoir téléchargé les clés d'hôte, configurez SSSD pour qu'il utilise la gestion des identités comme l'un de ses domaines d'identité et configurez OpenSSH pour qu'il utilise les outils SSSD afin de gérer les clés d'hôte, comme indiqué dans la section Configurer SSSD pour qu'il fournisse un cache pour les services OpenSSH.
Vérification
Exécutez la commande
ipa host-show
pour vérifier que la clé publique SSH est associée à l'hôte spécifié :$ ipa host-show client.ipa.test ... SSH public key fingerprint: SHA256:qGaqTZM60YPFTngFX0PtNPCKbIuudwf1D2LqmDeOcuA client@IPA.TEST (ssh-rsa) ...
45.4.3. Suppression des clés SSH pour un hôte à l'aide de l'interface Web IdM
Vous pouvez supprimer les clés d'hôte lorsqu'elles expirent ou ne sont plus valides. Suivez les étapes ci-dessous pour supprimer une clé d'hôte individuelle à l'aide de l'interface Web IdM.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'interface Web IdM ou rôle d'administrateur d'hôte.
Procédure
- Connectez-vous à l'interface Web IdM.
-
Allez dans l'onglet
Identity>Hosts
. - Cliquez sur le nom de l'hôte à modifier.
-
Dans la section
Host Settings
, cliquez surDelete
en regard de la clé publique SSH que vous souhaitez supprimer. -
Cliquez sur
Save
en haut de la page.
Vérification
-
Dans la section
Host Settings
, vérifiez que la clé n'est plus répertoriée sousSSH public keys
.
45.4.4. Suppression des clés SSH pour un hôte à l'aide de la CLI IdM
Vous pouvez supprimer les clés d'hôte lorsqu'elles expirent ou ne sont plus valides. Suivez les étapes ci-dessous pour supprimer une clé d'hôte individuelle à l'aide de la CLI IdM.
Conditions préalables
- Privilèges d'administrateur pour gérer le CLI IdM ou le rôle d'administrateur de l'hôte.
Procédure
Pour supprimer toutes les clés SSH attribuées à un compte hôte, ajoutez l'option
--sshpubkey
à la commandeipa host-mod
sans spécifier de clé :$ kinit admin $ ipa host-mod --sshpubkey= --updatedns host1.example.com
Il est conseillé d'utiliser l'option
--updatedns
pour mettre à jour l'entrée DNS de l'hôte.
L'IdM détermine automatiquement le type de clé à partir de la clé, si le type n'est pas inclus dans la clé téléchargée.
Vérification
Exécutez la commande
ipa host-show
pour vérifier que la clé publique SSH n'est plus associée à l'hôte spécifié :ipa host-show client.ipa.test Host name: client.ipa.test Platform: x86_64 Operating system: 4.18.0-240.el8.x86_64 Principal name: host/client.ipa.test@IPA.TEST Principal alias: host/client.ipa.test@IPA.TEST Password: False Member of host-groups: ipaservers Roles: helpdesk Member of netgroups: test Member of Sudo rule: test2 Member of HBAC rule: test Keytab: True Managed by: client.ipa.test, server.ipa.test Users allowed to retrieve keytab: user1, user2, user3