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


Sous Linux (Debian Squeeze), je souhaite désactiver la connexion SSH à l'aide d'un mot de passe pour certains utilisateurs (groupe sélectionné ou tous les utilisateurs sauf root). Mais je ne veux pas désactiver la connexion en utilisant un certificat pour eux.

modifier: 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

145
2018-06-30 14:31


origine


Peut-être que c'est à cause de votre indentation? - nil
Il est à noter que les lignes sous la correspondance doivent être à la fin du fichier - zidarsk8
! root ne fonctionne pas non plus pour moi. La deuxième approche a fait l'affaire. - natenho
J'ai vu des cas où Match User "!root,*" fait le travail. - Roman Hocke


Réponses:


Essayer 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 de correspondance ou la fin du fichier." (l'indentation n'est pas significative)


156
2018-06-30 16:13



préférer Match user !root pour ce cas - 84104
Génial, je ne connaissais pas la syntaxe Match. Une suggestion que je ferais, cependant, est que s’il s’agisse d’un serveur public, je n’autoriserais pas la connexion root via SSH. Probablement pas un gros problème si c'est interne si .. - Safado
@SpacemanSpiff C'est ce à quoi servent a) les mots de passe forts et b) denyhosts / fail2ban. - ceejayoz
@ deed02392 Vous pouvez considérer qu'une clé est un mot de passe vraiment très fort si vous le souhaitez. - ceejayoz
C'est tellement plus fort que ce n'est pas dans le même stade, c'était ce que je voulais dire. L'authentification par mot de passe doit également être désactivée pour root et les clés ne doivent être autorisées que pour les connexions. - deed02392


Match dans sshd_config fonctionne bien. Tu devrais utiliser Match all mettre fin au bloc de correspondance si vous utilisez openssh 6.5p1 ou une version ultérieure. Exemple:

PasswordAuthentication no
Match User root
PasswordAuthentication yes
Match all

12
2017-11-27 22:13





Vous pouvez le faire de différentes manières - premièrement, vous pouvez exécuter de manière concise un deuxième démon sshd sur un port différent avec une configuration différente - c'est un peu un bidouillage, mais avec un peu de travail en bloc, cela devrait fonctionner correctement.

En outre, vous pouvez autoriser l'authentification par mot de passe, mais verrouiller les mots de passe. pour tous les utilisateurs sauf un. Les utilisateurs avec des mots de passe verrouillés seront toujours capable de s'authentifier avec des clés publiques.


1
2018-06-30 15:42





vous pouvez simplement aller dans le fichier / etc / ssh / sshd_config et ajouter une ligne Pour autoriser -> AllowUsers user1 Pour refuser ---> DenyUsers user2

nous pouvons autoriser / refuser la connexion pour un ensemble particulier d'hôtes à l'aide des fichiers hosts.allow ou hosts.deny situés dans le dossier / etc


-1
2018-03-04 06:10