Ce guide explique comment désactiver l'authentification par mot de passe SSH pour un utilisateur ou un groupe spécifique dans les systèmes d'exploitation Linux et Unix.
Veuillez noter que nous n'allons pas désactiver entièrement l'accès SSH aux utilisateurs ou à un groupe. Au lieu de cela, nous désactiverons uniquement l'authentification par mot de passe SSH.
Les utilisateurs peuvent toujours accéder aux systèmes via SSH en utilisant d'autres méthodes d'authentification, par exemple l'authentification basée sur une clé SSH.
Désactiver l'authentification par mot de passe SSH pour un utilisateur ou un groupe spécifique
Nous pouvons autoriser ou refuser l'accès SSH aux utilisateurs et/ou à tout un groupe en utilisant "/etc/ssh/sshd_config" fichier sous Linux. Le fichier sshd_config a un paramètre nommé "Match" qui vous aidera à désactiver l'authentification par mot de passe SSH pour les utilisateurs ou les groupes.
Voyons d'abord comment désactiver l'authentification par mot de passe pour un utilisateur spécifique.
Modifiez le fichier "/etc/ssh/sshd_config" en utilisant votre éditeur préféré en tant qu'utilisateur root ou sudo :
$ sudo nano /etc/ssh/sshd_config
Tout d'abord, supprimez la méthode d'authentification par défaut en commentant la ligne suivante :
#PasswordAuthentication yes
Ensuite, ajoutez les lignes suivantes à la fin :
[...] Match User senthil PasswordAuthentication no
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042717065889.png)
Désactiver l'authentification par mot de passe SSH pour un utilisateur spécifique
Veuillez noter que la correspondance est effective "jusqu'à une autre ligne de correspondance ou jusqu'à la fin du fichier". Si un mot-clé apparaît dans plusieurs blocs Match satisfaits, seule la première instance du mot-clé est appliquée.
Comme dans l'exemple ci-dessus, nous avons désactivé l'authentification par mot de passe SSH pour l'utilisateur appelé "senthil". Remplacez "senthil" par votre propre nom d'utilisateur. Enregistrez et fermez le fichier. Redémarrez le service ssh pour appliquer les modifications :
$ sudo systemctl restart ssh
Essayez maintenant de vous connecter en tant qu'utilisateur "senthil" via SSH :
$ ssh [email protected]
Vous verrez le message d'erreur suivant :
[email protected]: Permission denied (publickey).
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042717065927.png)
Désactiver l'authentification par mot de passe SSH pour un utilisateur spécifique sous Linux
Désactiver l'authentification par mot de passe SSH pour un groupe
Pour désactiver l'authentification par mot de passe SSH pour un groupe spécifique, remplacez simplement le nom d'utilisateur par le nom du groupe dans le fichier sshd_config.
Match Group mygroup PasswordAuthentication no
Remplacez "mygroup" dans la configuration ci-dessus par votre propre nom de groupe.
N'oubliez pas de redémarrer le service ssh pour appliquer les modifications.
Désactiver l'authentification par mot de passe SSH pour plusieurs utilisateurs
Vous pouvez refuser l'authentification par mot de passe SSH pour plusieurs utilisateurs en mentionnant les noms d'utilisateur séparés par des virgules comme ci-dessous :
Match User senthil,kumar PasswordAuthentication no
L'exemple de configuration ci-dessus empêchera l'authentification par mot de passe SSH pour les utilisateurs "senthil" et "kumar".
Désactiver l'authentification par mot de passe SSH pour tous les utilisateurs sauf l'utilisateur root
Dans certains systèmes Linux, vous souhaiterez peut-être autoriser l'authentification par mot de passe SSH pour l'utilisateur "root" uniquement et la désactiver pour tous les autres utilisateurs. Si c'est le cas, ajoutez la ligne suivante dans le fichier sshd_config à la fin :
Match User !root PasswordAuthentication no
Restreindre l'authentification du mot de passe SSH par hôte ou adresse IP
Pas seulement un utilisateur ou un groupe, nous pouvons également refuser l'authentification par mot de passe SSH par hôte ou adresse IP.
Par exemple, l'exemple suivant empêchera l'accès SSH d'un hôte contenant l'adresse IP :
Match Address 192.168.225.37 PasswordAuthentication no
Pour limiter l'authentification par mot de passe SSH pour une plage spécifique d'adresses IP, ajoutez ceci :
Match Address 192.168.225.* PasswordAuthentication no
Et cet exemple refusera l'accès SSH en utilisant le mot de passe d'un hôte contenant le nom d'hôte :
Match Address hostname PasswordAuthentication no
Pour plus de détails, consultez les pages de manuel.
$ man sshd_config
Conclusion
Dans ce guide, nous avons expliqué comment désactiver l'authentification par mot de passe SSH pour un utilisateur ou un groupe spécifique sous Linux. Nous avons également examiné comment désactiver l'accès par mot de passe SSH pour plusieurs utilisateurs, comment restreindre l'accès par mot de passe SSH à tous les utilisateurs, à l'exception de l'utilisateur root. Enfin, nous avons appris à restreindre l'authentification par mot de passe SSH par hôte ou adresse IP.
Autres guides liés à SSH :
- Comment configurer l'authentification basée sur une clé SSH sous Linux
- Autoriser ou refuser l'accès SSH à un utilisateur ou à un groupe particulier sous Linux
- Limiter le nombre de connexions SSH par utilisateur/groupe/système
- Restreindre l'accès aux serveurs Linux à l'aide d'encapsuleurs TCP
- Exécuter des commandes sur des systèmes Linux distants via SSH
- Comment créer un alias SSH sous Linux
- Comment se connecter en SSH à un répertoire particulier sous Linux
- SSLH :partager un même port pour HTTPS et SSH
- ScanSSH – Serveur SSH rapide et analyseur de proxy ouvert
- Comment reprendre des fichiers partiellement transférés via SSH à l'aide de Rsync
- Comment exécuter une commande unique sur plusieurs systèmes distants à la fois
- DSH – Exécuter une commande Linux sur plusieurs hôtes à la fois
- Comment empêcher la session SSH de se déconnecter sous Linux
- Comment activer SSH sur FreeBSD
J'espère que cela vous aidera.