GNU/Linux >> Tutoriels Linux >  >> Linux

Autoriser la connexion root ssh avec authentification par clé publique uniquement

Les bases

Le serveur SSH a plusieurs façons d'authentifier un client qui s'y connecte. La méthode la plus populaire est l'authentification par mot de passe car c'est la plus simple, mais elle n'est pas aussi sécurisée. Les mots de passe sont échangés avec des mécanismes sécurisés, cependant, en raison de la facilité d'utilisation, ils ne sont généralement pas complexes ou longs. Cela permet à l'attaquant de casser le mot de passe à l'aide d'attaques par force brute ou par dictionnaire. Dans de tels scénarios, les clés SSH peuvent fournir un moyen d'authentification sécurisé et fiable pour les clients.

Le serveur SSH utilise un schéma de cryptographie à clé publique pour authentifier les utilisateurs. Dans ce schéma, une paire de clés est générée, une clé publique et une clé privée, pour l'authentification. Comme son nom l'indique, une clé privée est gardée secrète par le client car sa compromission peut amener quelqu'un à se connecter au serveur sans aucune authentification supplémentaire.

La clé publique correspondante pour la clé privée secrète du client n'est pas gardée secrète et est copiée sur les systèmes auxquels l'utilisateur se connecte. La clé privée est utilisée pour déchiffrer le message chiffré à l'aide de la clé publique associée du client. À l'aide de la paire de clés, nous pouvons également activer l'authentification sans mot de passe. La clé publique de confiance du client est stockée dans un fichier spécial nommé authorized_keys dans le répertoire d'accueil du compte utilisateur.

Lorsqu'un client tente d'authentifier le serveur SSH à l'aide de clés, un défi est émis à l'aide de la clé publique du client stockée sur le serveur. En déchiffrant avec succès le défi à l'aide de la clé privée du client, l'utilisateur obtient l'accès au shell du serveur.

Configurer l'authentification par clé publique uniquement pour ssh

1. En tant qu'utilisateur root, modifiez le fichier de configuration du démon sshd (/etc/ssh/sshd_config ).

2. Modifiez les paramètres PermitRootLogin et PubkeyAuthentication pour qu'ils aient les valeurs suivantes :

PermitRootLogin without-password
PubkeyAuthentication yes

Autorisez uniquement la connexion ssh basée sur une clé dans le compte root en définissant la valeur de la directive PermitRootLogin sur sans mot de passe comme indiqué ci-dessus.

3. Vérifiez que la syntaxe du fichier de configuration sshd_config est correcte avant de redémarrer le démon sshd.

# sshd -t

La commande ci-dessus ne devrait rien renvoyer. Cela signifie que le fichier de configuration est syntaxiquement correct et que vous êtes sûr de redémarrer le démon sshd sans aucun problème.

4. Redémarrez le démon sshd :

# service sshd restart

ou

# systemctl restart sshd


Linux
  1. Ssh - Vous obtenez toujours une invite de mot de passe avec Ssh avec authentification par clé publique ?

  2. Premiers pas avec SSH sous Linux

  3. Comment désactiver la connexion SSH avec un mot de passe

  4. Activer l'authentification par clé publique SSH

  5. Restreindre la connexion SSH à une adresse IP ou à un hôte spécifique

Autoriser la connexion racine SSH sur Ubuntu 20.04 Focal Fossa Linux

Autoriser la connexion racine SSH sur Ubuntu 22.04 Jammy Jellyfish Linux

Comment ajouter une clé publique SSH au serveur

Connexion SSH sans mot de passe en 3 étapes simples

Connectez-vous à un serveur Linux avec une clé privée SSH sur un client Windows

Ajouter la clé publique au fichier known_hosts