Quelqu'un peut-il expliquer la «PasswordAuthentication» dans le fichier / etc / ssh / sshd_config?

28

Sur cette page , l'explication donnée est:

L'option PasswordAuthentication spécifie si nous devons utiliser l'authentification par mot de passe. Pour une sécurité renforcée, cette option doit toujours être définie sur oui.

Mais il ne fournit aucun scénario d'utilisation qui précise quand un oui ou un non serait approprié. Quelqu'un peut-il développer davantage?

Zeta2
la source

Réponses:

21

Votre lien pointe vers une documentation obsolète depuis 10 ans.

SSH prend en charge plusieurs façons d'authentifier les utilisateurs, la plus courante consiste à demander un identifiant et un mot de passe, mais vous pouvez également authentifier l'utilisateur avec un identifiant et une clé publique. Si vous définissez PasswordAuthentication sur non, vous ne pourrez plus utiliser un identifiant et un mot de passe pour vous authentifier et devez utiliser à la place un identifiant et une clé publique (si PubkeyAuthentication est défini sur oui)

rayon
la source
ok donc pour authorized_key2 uniquement: (1) commentez AuthorizedKeysFile (2) PasswordAuthentication no (3) PubkeyAuthentication yes (4) ChallengeResponseAuthentication no (5) testez-le ... s'il accepte toujours les mots de passe, ajoutez également UsePam no
YumYumYum
Utilisez ces paramètres: fpaste.org/114544/04202660 lorsque vous autorisez uniquement la connexion SSH via ~ / .ssh / authorized_keys2 mais pas avec le nom d'utilisateur / mot de passe
YumYumYum
1
et quelle en est la valeur par défaut? Je veux dire, que se passe-t-il si je ne spécifie pas de "PasswordAuthentication"?
Riccardo SCE
@TSERiccardo: personne n'a répondu à votre question? C'est dommage, blâme donc!
Timo
1
@RiccardoSCE Selon la page de manuel sshd_config, la valeur par défaut pour PasswordAuthentication est «oui».
Starfish
53

Veuillez noter que le paramètre PasswordAuthentication ne contrôle pas TOUTES les authentifications par mot de passe. ChallengeResponseAuthentication demande généralement également des mots de passe.

PasswordAuthentication contrôle la prise en charge du schéma d'authentification par «mot de passe» défini dans la RFC-4252 (section 8). ChallengeResponseAuthentication contrôle la prise en charge du schéma d'authentification «interactif au clavier» défini dans la RFC-4256. Le schéma d'authentification «interactif au clavier» pourrait, en théorie, poser à un utilisateur un certain nombre de questions à facettes multiples. En pratique, il ne demande souvent que le mot de passe de l'utilisateur.

Si vous souhaitez désactiver complètement l'authentification par mot de passe, définissez BOTH PasswordAuthentication et ChallengeResponseAuthentication sur «no». Si vous êtes de la mentalité des ceintures et bretelles, envisagez également de régler UsePAM sur «non».

L'authentification par clé publique / privée (activée par le paramètre PubkeyAuthentication) est un type d'authentification distinct qui n'implique pas l'envoi de mots de passe utilisateur au serveur, bien sûr.

Certains diront que l'utilisation de ChallengeResponseAuthentication est plus sécurisée que PasswordAuthentication car elle est plus difficile à automatiser. Ils recommandent donc de laisser PasswordAuthentication désactivé tout en laissant ChallengeResponseAuthentication activé. Cette configuration encourage également (mais n'empêche pas nécessairement) l'utilisation de l'authentification publickey pour toutes les connexions système automatisées. Mais, puisque SSH est un protocole basé sur le réseau, le serveur n'a aucun moyen de garantir que les réponses à ChallengeResponseAuthentication (alias «clavier interactif») sont réellement fournies par un utilisateur assis sur un clavier tant que le (s) défi (s) est toujours et consiste uniquement à demander à un utilisateur son mot de passe.

Izzy
la source
7
J'apprécierais une explication de ce qui UsePAMfait ...
Alexey
3

PasswordAuthentication est l'implémentation la plus simple, car il n'y a rien à faire. La contrepartie est que vous envoyez votre mot de passe, via une connexion cryptée, au serveur. Cela peut être un problème de sécurité si le serveur a été compromis, car le mot de passe pourrait alors être capturé.
Avec la clé publique, votre mot de passe n'est pas transmis au serveur, il est plus sécurisé mais il a besoin de plus de configuration.

kaklon
la source
Cette réponse est un peu ancienne, mais j'aimerais ajouter quelque chose: La grande chose à propos de l'authentification Pubkey est qu'aucun secret n'est transmis au serveur. La clé privée reste secrète sur votre ordinateur, c'est-à-dire que vous ne pouvez pas transmettre accidentellement tout type de secret à un serveur compromis ou MITM. Pubkey est donc nettement plus favorable que l'authentification par mot de passe. Mais de toute façon, oui, l'authentification par mot de passe est beaucoup plus facile à implémenter.
Jan D
Ce ne serait pas compliqué de l'installer, tout comme être paresseux de ne pas le faire.
sudo
0

Vous pouvez le régler sur no lors de l'utilisation des clés ou pour forcer leur utilisation.

Ignacio Vazquez-Abrams
la source