Ce que fait ce module #
SSH est la porte d'entrée de votre serveur : le canal chiffré par lequel vous vous connectez pour l'administrer. S'assurer que cette porte est correctement posée — avec les bonnes clés et sans serrures superflues — c'est ce qui sépare un serveur sécurisé d'un serveur exposé.
Le module ssh réunit les tâches de cet accès distant dans une seule commande : il gère les clés autorisées de l'utilisateur (ajouter, lister, supprimer), contrôle les clés d'hôte par lesquelles le serveur s'identifie auprès des clients, affiche les sessions actives, et vérifie ou réapplique le durcissement de sshd défini dans votre configuration. Chaque opération qui touche à sshd valide d'abord la configuration (sshd -t) pour qu'un changement erroné ne puisse pas vous verrouiller dehors.
Gardez une session ouverte pendant que vous changez des clés ou redémarrez sshd : ainsi, si quelque chose tourne mal, vous êtes encore connecté pour le corriger. Par défaut, le module travaille sur l'utilisateur géré ubuntu ; utilisez --user pour opérer sur un autre.
Tâches courantes #
Choisissez ce que vous voulez faire. Chaque recette fournit la commande déjà écrite — il suffit d'y mettre votre propre utilisateur ou clé, et de cliquer sur Copier.
1
Voir l'état de l'accès SSH
Vérifiez d'un coup d'œil que sshd est actif et correctement configuré.
Connectez-vous en SSH à votre serveur en tant qu'utilisateur ubuntu et lancez :
$ sudo imaxe ssh statusBesoin de l'utiliser dans un script ? Ajoutez --json et vous obtiendrez les mêmes informations, lisibles par machine :
$ sudo imaxe ssh status --jsonsshd est actif, sur quel port il écoute, et un résumé du durcissement appliqué.2
Ajouter ou supprimer une clé autorisée
Accordez l'accès à une nouvelle machine ou révoquez-en une que vous n'utilisez plus.
D'abord, regardez quelles clés sont actuellement autorisées pour l'utilisateur géré :
$ sudo imaxe ssh keys listAjoutez une clé publique en la passant comme argument (ou utilisez - pour la lire depuis l'entrée standard) :
$ sudo imaxe ssh keys add "ssh-ed25519 AAAAC3Nz... ana@portatil" --comment "ana@portatil"Vous n'en avez plus besoin ? Supprimez-la par son fingerprint ou par son commentaire :
$ sudo imaxe ssh keys remove "ana@portatil"authorized_keys de l'utilisateur est mis à jour. Vérifiez le résultat avec keys list.3
Régénérer les clés d'hôte après un clonage
Essentiel après avoir créé une machine à partir d'une AMI.
Quand vous clonez une image, chaque copie hérite de la même identité de serveur. Générez des clés d'hôte fraîches et uniques pour cette machine :
$ sudo imaxe ssh hostkeys regenerate --yes4
Examiner et réappliquer le durcissement
Vérifiez que sshd est toujours configuré comme il se doit, et corrigez-le sinon.
Comparez le durcissement actuel à celui souhaité (celui que votre configuration définit) :
$ sudo imaxe ssh harden showDes différences ? Réappliquez le durcissement depuis le YAML et rechargez sshd en toute sécurité :
$ sudo imaxe ssh harden reapplysshd se recharge sans couper votre session.5
Voir les sessions et redémarrer sshd
Voyez qui est connecté et appliquez les changements sans crainte de vous verrouiller dehors.
Listez les sessions SSH actives en ce moment :
$ sudo imaxe ssh sessionsPour appliquer des changements de configuration, préférez reload (il ne coupe pas les connexions) ; n'utilisez restart que si un redémarrage complet est nécessaire. Les deux valident d'abord la configuration :
$ sudo imaxe ssh reload
$ sudo imaxe ssh restartAvant de redémarrer sshd ou de changer le port, gardez une deuxième session de secours ouverte. Si, en vous reconnectant, vous obtenez un avertissement de host key différente après un hostkeys regenerate, c'est attendu : acceptez la nouvelle identité.
Synopsis #
imaxe ssh <subcomando> [<subcomando-anidado>] [argumentos] [flags]Les opérations qui lisent ou modifient sshd, les clés autorisées ou les clés d'hôte nécessitent les privilèges root (utilisez sudo). Les groupes keys, hostkeys et harden réunissent leurs propres sous-commandes imbriquées. Ajoutez --json à status, sessions, keys list ou harden show pour une sortie adaptée au scripting.
Sous-commandes #
| Sous-commande | Rôle | Flags pertinents |
|---|---|---|
| status | État de sshd : actif, port et résumé du durcissement. | --json |
| keys list | Liste les clés autorisées de l'utilisateur géré. | --user, --json |
| keys add | Ajoute une clé publique (depuis un argument ou stdin). | --user, --comment |
| keys remove | Supprime une clé par fingerprint ou par commentaire. | --user |
| hostkeys regenerate | Régénère les clés d'hôte (critique après le clonage d'une AMI ; change le fingerprint). | --yes |
| sessions | Liste les sessions SSH actives. | --json |
| harden show | Affiche le durcissement actuel face à celui souhaité. | --json |
| harden reapply | Réapplique le durcissement depuis le YAML et recharge sshd. | — |
| restart | Redémarre sshd, en validant d'abord la configuration (sshd -t). | — |
| reload | Recharge sshd, en validant d'abord la configuration (sshd -t). | — |
Arguments et flags #
| Argument / Flag | Type | Par défaut | Description |
|---|---|---|---|
| <clave> req. | string | — | Dans keys add : la clé publique, ou - pour la lire depuis stdin. |
| <selector> req. | string | — | Dans keys remove : fingerprint (SHA256:...) ou commentaire de la clé à supprimer. |
| --user | string | ubuntu | Utilisateur dont le fichier authorized_keys est consulté ou modifié (dans keys list/add/remove). |
| --comment | string | — | Dans keys add : commentaire associé à la clé pour l'identifier plus tard. |
| --yes | bool | false | Dans hostkeys regenerate : confirme sans demander (change le fingerprint que voient les clients). |
| --json | bool | false | Dans status, sessions, keys list et harden show : émet le résultat en JSON sur stdout. |
Fichiers et chemins #
| Chemin | Contenu |
|---|---|
| /etc/imaxe/ssh.yml | Configuration du module : port, politiques de connexion (root, mot de passe, clé publique), utilisateurs autorisés, utilisateur géré et régénération des clés d'hôte. |
| /home/<usuario>/.ssh/authorized_keys | Clés publiques autorisées de l'utilisateur géré que keys add/remove modifient. |
| /etc/ssh/sshd_config.d/ | Fragments de configuration de sshd où le durcissement est appliqué. |
| /etc/ssh/ssh_host_*_key | Clés d'hôte qui identifient le serveur et que hostkeys regenerate renouvelle. |
Exemple de ssh.yml :
port: 22
permit_root_login: "no"
password_authentication: "no"
pubkey_authentication: "yes"
allow_users: []
managed_user: ubuntu
hostkeys:
regenerate_on_first_boot: trueCodes de sortie et logs #
Chaque exécution renvoie un code que vous pouvez vérifier avec echo $? — pratique pour enchaîner dans des scripts :
sshd -t a échoué ; rien n'a été appliqué.Suivez le log du service en direct pendant le débogage :
$ sudo journalctl -u ssh -f
$ sudo imaxe ssh harden show --jsonRésolution des problèmes #
| Symptôme | Cause probable | Solution |
|---|---|---|
| Renvoie CONFIG (code 3) | Le durcissement ou un changement manuel a laissé sshd avec une configuration invalide. | Examinez le diff avec imaxe ssh harden show et corrigez-le ; la validation empêche d'appliquer une config cassée. |
| À la reconnexion, un avertissement de host key différente | Les clés d'hôte ont été régénérées (attendu après le clonage d'une AMI). | C'est normal : acceptez la nouvelle identité sur le client et mettez à jour votre known_hosts. |
keys add renvoie NOTFOUND (code 4) | L'utilisateur indiqué dans --user n'existe pas sur le système. | Vérifiez le nom d'utilisateur ou utilisez l'utilisateur géré par défaut (ubuntu). |
| Je ne peux plus me connecter avec un mot de passe | password_authentication est réglé sur "no" par le durcissement. | C'est intentionnel : connectez-vous avec une clé publique et gérez-les avec imaxe ssh keys. |
Bloqué sur le module SSH ?
Écrivez-nous avec la sortie de « imaxe <module> status --json » et nous vous répondons rapidement.