196 votes

Comment désactiver la connexion SSH avec mot de passe pour certains utilisateurs ?

Sous Linux (Debian Squeeze), je souhaiterais désactiver la connexion SSH par mot de passe pour certains utilisateurs (groupe sélectionné ou tous les utilisateurs sauf root). Mais je ne veux pas désactiver la connexion par certificat pour eux.

éditer: merci beaucoup pour la réponse détaillée! Pour une raison quelconque, cela ne fonctionne pas sur mon serveur:

Match User !root
PasswordAuthentication no

... mais peut être facilement remplacé par

PasswordAuthentication no
Match User root
PasswordAuthentication yes

0 votes

Peut-être est-ce à cause de votre indentation ?

8 votes

Il est à noter que ces lignes sous le match doivent être à la fin du fichier

2 votes

! root ne fonctionne pas non plus pour moi. La deuxième approche a fait l'affaire.

214voto

Cakemox Points 23637

Essayez Match dans sshd_config:

Match User user1,user2,user3,user4
    PasswordAuthentication no

Ou par groupe:

Match Group users
    PasswordAuthentication no

Ou, comme mentionné dans le commentaire, par négation:

Match User !root
    PasswordAuthentication no

Notez que la correspondance est efficace "jusqu'à ce qu'une autre ligne Match ou la fin du fichier soit atteinte." (l'indentation n'est pas significative)

6 votes

Préférer Match user !root pour ce cas

1 votes

Génial, je ne connaissais pas la syntaxe Match. Une suggestion que je ferais, cependant, est que si c'est un serveur public, je ne permettrais pas du tout la connexion en tant que root via SSH. Probablement pas grave si c'est en interne, cependant...

0 votes

Je n'autoriserais pas du tout la connexion root via SSH - Nous utilisons un mot de passe root fort donc ce n'est pas une réelle faiblesse de sécurité.

38voto

Trevor Hateley Points 441

Match dans sshd_config fonctionne bien. Vous devriez utiliser Match all pour mettre fin au bloc de correspondance si vous utilisez openssh 6.5p1 ou supérieur. Exemple:

PasswordAuthentication no
Match User root
PasswordAuthentication yes
Match all

0 votes

Ça n'a pas fonctionné pour moi...

2 votes

"Match all" a fait l'affaire. Merci. Sans "Match all", sshd ne démarre pas.

0 votes

Cela ne fonctionne pas sous Ubuntu 20.04.

4voto

En raison de certaines raisons de sécurité, il se peut que vous ayez besoin de bloquer l'accès SSH de certains utilisateurs à la boîte Linux.

Modifiez le fichier sshd_config, l'emplacement peut parfois être différent en fonction de la distribution Linux, mais il se trouve généralement dans /etc/ssh/.

Ouvrez le fichier en étant connecté en tant que root :

# vi /etc/ssh/sshd_config

Insérez une ligne à la fin du fichier de configuration :

DenyUsers nom_utilisateur1 nom_utilisateur2 nom_utilisateur3 nom_utilisateur4

Enregistrez et redémarrez les services SSH. Fondamentalement, les connexions SSH des utilisateurs nom_utilisateur1, nom_utilisateur2, nom_utilisateur3 et nom_utilisateur4 sont interdites.

Exécutez la commande suivante pour redémarrer la même :-

# systemctl restart sshd

La demande a été effectuée. Veuillez retirer l'accès SSH à ces utilisateurs et vous obtiendrez une erreur "Accès refusé".

1 votes

La question concernait la désactivation de la connexion par mot de passe (mais en conservant la connexion par authentification par clé).

2voto

mikaraento Points 511

Il existe plusieurs façons de faire cela - tout d'abord, vous pourriez potentiellement exécuter un deuxième démon sshd sur un port différent avec une configuration différente - c'est un peu une astuce, mais avec un peu de travail de chroot, cela devrait fonctionner parfaitement.

De plus, vous pourriez autoriser l'authentification par mot de passe, mais verrouiller les mots de passe pour tous sauf un seul utilisateur. Les utilisateurs dont les mots de passe sont verrouillés pourront toujours s'authentifier avec des clés publiques.

1voto

HansV Points 1

L'ordre des déclarations de configuration compte ... ma solution pour le fichier

/etc/ssh/sshd_config:

Match Utilisateur  
PasswordAuthentication yes
Match Utilisateur all
PasswordAuthentication no

0 votes

Voir l'aide sur le formatage pour apprendre comment ajouter du formatage à vos publications.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X