Comment activer la connexion SSH root sous Linux avec des clés SSH

Activez la connexion SSH en tant que root avec une clé publique en l'ajoutant au répertoire `/etc/sshd` de root authorized_keys, en configurant PermitRootLogin prohibit-password`opensshd_config`, en validant la configuration OpenSSH et en redémarrant le service. Cela permet à root de se connecter par clé tout en bloquant l'authentification par mot de passe et l'authentification interactive au clavier. Consultez le manuel `sshd_config` d'OpenSSH pour la définition des options.

Un terminal se connectant à un serveur Linux en tant qu'administrateur via SSH
Cette illustration du terminal montre l'invite de confiance ; vérifiez l'empreinte digitale réelle de l'hôte via un canal de confiance avant de l'accepter.

L'accès root direct confère à une clé acceptée un contrôle total. Utilisez-le uniquement sur un système que vous administrez et de préférence derrière un réseau privé ou un pare-feu. Pour les opérations courantes, connectez-vous en tant qu'utilisateur nommé et utilisez la commande appropriée sudo. Gardez votre session ouverte et assurez-vous de disposer d'une solution de secours avant de modifier les paramètres SSH à distance.

Avant de modifier le serveur SSH

  • Connectez-vous avec un compte capable d'exécuter la commande sudoet vérifiez que le serveur OpenSSH est en cours d'exécution.
  • Préparez une paire de clés SSH client. Copiez la clé publique (généralement le fichier se terminant par .ssh .pub) ; ne partagez jamais la clé privée.

Ne définissez pas de mot de passe root uniquement pour l'authentification SSH par clé. Le verrouillage du mot de passe et l'accès par clé publique sont deux mécanismes de contrôle distincts, même si les politiques de compte de la distribution peuvent affecter la connexion. Le guide de gestion des utilisateurs d'Ubuntu explique que le verrouillage du mot de passe seul ne désactive pas l'accès par clé SSH existant.

Activer la connexion SSH root par clé

1. Connectez-vous en tant qu'administrateur habituel

Depuis un terminal sur votre client, connectez-vous avec le compte qui possède déjà les droits sudo :

ssh admin@server.example.com

Remplacez les valeurs d'exemple. Vérifiez l'empreinte digitale de la nouvelle clé hôte via un canal de confiance avant de l'accepter.

2. Ajoutez votre clé publique au compte root

Sur le serveur, créez un répertoire SSH pour l'utilisateur root avec des permissions restreintes, puis modifiez la liste des clés autorisées :

sudo install -d -m 700 /root/.ssh
sudoedit /root/.ssh/authorized_keys

Collez la clé publique complète sur une seule ligne et enregistrez. Ne collez jamais la clé privée et conservez les entrées existantes. Ensuite, limitez la propriété et les permissions :

sudo chown -R root:root /root/.ssh
sudo chmod 700 /root/.ssh
sudo chmod 600 /root/.ssh/authorized_keys
Un éditeur de terminal ouvert sur le fichier authorized_keys de root après la création du répertoire SSH root
Ajoutez la clé publique complète sur une seule ligne dans le fichier authorized_keys de l'utilisateur root ; la clé abrégée affichée ici n'est qu'un espace réservé visuel.

3. Définir la politique de connexion root

Ouvrez la configuration du serveur avec un éditeur, par exemple :

sudoedit /etc/ssh/sshd_config

Trouvez la PermitRootLogindirective active et modifiez-la comme suit :

PermitRootLogin prohibit-password

Cette méthode est plus sûre que PermitRootLogin yescelle qui autorise les mots de passe root. N'ajoutez pas de directive en double : OpenSSH utilise la première valeur obtenue, et les distributions peuvent charger Includedes fichiers. Modifiez le paramètre actif et laissez inchangées les options d'authentification non liées.

Configuration d'un serveur OpenSSH montrant que PermitRootLogin est défini sur prohibit-password
La ligne mise en évidence contrôle l'authentification racine ; les autres options d'authentification affichées sont des paramètres distincts et doivent correspondre à votre politique.

4. Validez la configuration avant de l'appliquer.

Vérifiez d'abord les erreurs de syntaxe :

sudo sshd -t

L'absence de résultat signifie que la vérification de syntaxe a réussi. Corrigez toute erreur signalée avant de recharger. Vérifiez la valeur effective avec :

sudo sshd -T | grep permitrootlogin

Vérifiez que le résultat est correct permitrootlogin prohibit-password. Sinon, vérifiez les fichiers inclus et Matchles blocs concernés. Le manuel sshd définit ` -tsshd` comme une vérification de syntaxe et `sshd` -Tcomme un rapport de configuration effective.

Un terminal exécutant la validation de la configuration sshd et affichant la valeur effective de PermitRootLogin
Exécutez sshd -t avant d'appliquer les modifications, puis examinez le paramètre de connexion root effectif.

5. Rechargez le service SSH

Utilisez le nom de service de votre distribution. Ubuntu et Debian utilisent généralement :

sudo systemctl reload ssh.service

Fedora, RHEL et de nombreuses autres distributions utilisent couramment :

sudo systemctl reload sshd.service

Si la commande `reload` n'est pas prise en charge, utilisez-la systemctl restartavec le nom de service correspondant et conservez votre session d'origine ouverte. Le guide OpenSSH d'Ubuntu recommande également de l'exécuter sshd -tavant de redémarrer.

Un terminal Linux rechargeant le service OpenSSH sur Ubuntu ou Debian
Rechargez le démon SSH une fois la configuration validée par la vérification de syntaxe ; les noms de service varient selon la distribution.

6. Tester l'accès root depuis un deuxième terminal

Ouvrez un terminal séparé sur le client et spécifiez la clé privée qui correspond à la clé publique que vous avez installée :

ssh -i ~/.ssh/id_ed25519 root@server.example.com

Remplacez le chemin d'accès à la clé et le nom d'hôte. Vérifiez l'invite de clé d'hôte et assurez-vous que la session s'ouvre en tant que superutilisateur (root). Si le test échoue, effectuez le dépannage à partir de la session d'origine et laissez-la ouverte jusqu'à ce que l'accès soit rétabli.

Un deuxième terminal a réussi à ouvrir une session SSH avec le compte root.
Effectuez un test depuis un nouveau terminal client en utilisant la clé privée correspondante avant de fermer la session d'administrateur.

Résolution des problèmes liés à un refus d'accès root

Pour cela Permission denied (publickey), vérifiez que la clé publique complète est bien présente /root/.ssh/authorized_keyset que le client utilise sa clé privée correspondante. Revérifiez la propriété et les permissions :

sudo chown -R root:root /root/.ssh
sudo chmod 700 /root/.ssh
sudo chmod 600 /root/.ssh/authorized_keys

PermitRootLoginVérifiez également la valeur effective , AllowUsersles DenyUsersrègles, les journaux du serveur et l'interpréteur de commandes de l'administrateur. Évitez de modifier ce paramètre par yescommodité ; cela pourrait étendre les méthodes d'authentification autorisées pour l'administrateur.

Un terminal Linux corrigeant la propriété et les permissions restrictives des fichiers de clés SSH root
Le répertoire SSH de root doit appartenir à root, avec le mode 700 pour le répertoire et 600 pour authorized_keys.

Désactivez la connexion SSH root lorsque vous n'en avez plus besoin.

Pour désactiver l'accès SSH direct en tant que root, modifiez la directive active comme suit :

PermitRootLogin no

Exécutez sudo sshd -tet rechargez le service approprié. Cela bloque l'accès SSH direct à l'utilisateur root tout en laissant le compte administrateur accessible. Un simple verrouillage par mot de passe peut ne pas suffire à empêcher la connexion par clé publique de root.

La configuration du serveur OpenSSH est définie sur PermitRootLogin non, suivie des commandes de validation et de rechargement du service.
Définissez PermitRootLogin sur non, validez et rechargez la page. Les autres options d'authentification affichées sont distinctes et ne sont pas nécessaires pour cette modification réservée à l'administrateur.

Pour plus de détails, consultez le manuel de configuration d'OpenSSH et la documentation SSH d'Ubuntu Server.

Laisser un commentaire

Comment récupérer en toute sécurité des partitions perdues et des données de disque dur

Comment récupérer en toute sécurité des partitions perdues et des données de disque dur

Découvrez comment récupérer des partitions et des fichiers perdus avec TestDisk et PhotoRec. Protégez le disque source, effectuez une analyse sécurisée et enregistrez les données récupérées sur un autre disque.

Comment scanner des codes QR sur un ordinateur Linux

Comment scanner des codes QR sur un ordinateur Linux

Numérisez les codes QR sous Linux avec CoBang à l'aide d'une webcam ou d'un fichier image. Consultez les options d'installation, la procédure de configuration et les solutions pour l'accès à la caméra via Flatpak.

Comment modifier les paramètres de la webcam sous Linux avec Cameractrls

Comment modifier les paramètres de la webcam sous Linux avec Cameractrls

Modifiez les paramètres de votre webcam sous Linux avec Cameractrls : ajustez l’exposition, la couleur, la réduction du scintillement et d’autres commandes prises en charge, puis vérifiez les modes vidéo compatibles.

Comment installer PhpStorm sous Linux : Toolbox, Tar.gz, Snap et AUR

Comment installer PhpStorm sous Linux : Toolbox, Tar.gz, Snap et AUR

Installez PhpStorm sur Linux avec JetBrains Toolbox ou l'archive tar.gz autonome, ainsi que via Snap et Arch AUR. Java est déjà inclus.

Comment installer Cisco Packet Tracer sous Linux

Comment installer Cisco Packet Tracer sous Linux

Téléchargez Cisco Packet Tracer 9.0.1 pour Ubuntu 64 bits, installez le paquet DEB avec APT, acceptez la licence dans le Terminal et connectez-vous pour démarrer un labo.

Comment sauvegarder un CD-ROM au format ISO sous Linux

Comment sauvegarder un CD-ROM au format ISO sous Linux

Créez une image ISO de CD-ROM sous Linux avec GNOME Disks ou dd. Identifiez le lecteur optique, surveillez la copie, vérifiez l'image et sachez si un disque endommagé ou audio nécessite un autre outil.

Comment configurer deux panneaux sur XFCE 4

Comment configurer deux panneaux sur XFCE 4

Créez un panneau XFCE 4 distinct pour chaque écran, assignez le deuxième panneau à la sortie appropriée, positionnez-le et dimensionnez-le, puis ajoutez les lanceurs et les éléments d'état dont vous avez besoin.

Comment détourer une image sous Linux avec GIMP

Comment détourer une image sous Linux avec GIMP

Supprimer l'arrière-plan d'une photo sous Linux avec GIMP : tracer un sujet, supprimer l'arrière-plan sélectionné, conserver la transparence et exporter un PNG réutilisable.

Téléchargez FlightGear gratuitement : Guide d’installation officiel

Téléchargez FlightGear gratuitement : Guide d’installation officiel

Téléchargez gratuitement FlightGear depuis le site officiel. Comparez les versions pour Windows, macOS et Linux, installez les fichiers de données et effectuez votre premier vol.

Application Google Tasks pour ordinateur : comment l’utiliser sur un ordinateur

Application Google Tasks pour ordinateur : comment l’utiliser sur un ordinateur

Ouvrez Google Tasks dans un navigateur, ajoutez un raccourci Chrome ou lancez-le comme une application, et gérez vos tâches datées via Agenda et Gmail.