Ordre d'authentification avec SSH

22

Lorsque je me connecte via ssh avec -vje vois que ssh s'authentifie de la manière suivante

debug1: Authentications that can continue: publickey,gssapi-with-mic,password,hostbased

Je voudrais changer la commande ... une idée de comment?

Mon plus gros problème est que l'utilisateur avec des comptes verrouillés peut toujours se connecter via des clés publiques. J'ai trouvé que je pouvais ajouter l'utilisateur à un groupe "ssh-verrouillé" ajouter refuser ce groupe de sshing, mais je me demande toujours s'il existe un moyen de dire à ssh'd: Veuillez vérifier le mot de passe avant les clés ...

Oz123
la source
1
Je pense que vous vous en approchez mal - les clés sont (généralement) plus sécurisées que les mots de passe. Si le compte est verrouillé, vous devez dire au démon sshd de ne pas laisser l'utilisateur se connecter quelle que soit la méthode d'authentification.
EightBitTony
Comme je l'ai dit, j'ai trouvé une solution, via DenyGroups. Je le demande par intérêt.
Oz123

Réponses:

31

Le serveur ssh décide des options d'authentification qu'il autorise, le client ssh peut être configuré pour décider dans quel ordre les essayer.

Le client ssh utilise l' PreferredAuthenticationsoption dans le fichier de configuration ssh pour déterminer cela.

De man ssh_config( voir en ligne ici ):

PreferredAuthentications
             Specifies the order in which the client should try protocol 2 authentication methods.  This allows a client to prefer
             one method (e.g. keyboard-interactive) over another method (e.g. password).  The default is:

                   gssapi-with-mic,hostbased,publickey,
                   keyboard-interactive,password

Je ne pense pas qu'il soit possible, sans jouer avec la source, de dire au serveur OpenSSH de préférer un certain ordre - si vous y réfléchissez, cela n'a tout de même pas de sens.

EightBitTony
la source
Si vous utilisez Git Bash pour Windows, enregistrez votre configuration ssh dans~/.ssh/config
Spencer Williams
L'ordre peut avoir du sens si une méthode dépend d'une précédente. Par exemple, 2FA sous clavier interactif peut dépendre de l'utilisateur ayant d'abord fourni un mot de passe valide.
steveayre
Pouvez-vous publier une source où vous avez copié-collé les informations PreferredAuthentications ci-dessus? Je ne le vois man sshni dans /etc/ssh/ssh_config, ni dans, ni dans /etc/ssh/sshd_config. Où avez-vous obtenu cette information?
Gabriel Staples
Je l'ai trouvé! C'était dedans man ssh_config. J'ai soumis une modification pour examen afin de mettre à jour votre réponse pour contenir cette source. Veuillez citer des sources la prochaine fois! Merci beaucoup.
Gabriel Staples
18

Ajout de ceci:

PreferredAuthentications keyboard-interactive,password,publickey,hostbased,gssapi-with-mic

... pour moi /etc/ssh/ssh_configm'a aidé à résoudre ce problème et a également permis de gagner beaucoup de temps!

Vous pouvez vérifier si cela fonctionne en utilisant la ssh -v user@hostcommande pour vous connecter, où -vsignifie "verbeux".

Pavel Anni
la source
2
Assurez-vous que vous l'ajoutez au fichier correct ssh_configet non sshd_config. Ce dernier entraînera l'échec de votre ssh!
Oranges13
0

En ajoutant aux deux autres réponses mentionnant déjà l' PreferredAuthenticationsoption, je voudrais ajouter que vous n'avez pas besoin de modifier un fichier pour définir ce paramètre si vous ne le souhaitez pas . Au lieu de cela, vous pouvez simplement le définir sur la ligne de commande pour un appel individuel àssh , avec l' -ooption, comme suit:

ssh -o PreferredAuthentications=publickey,gssapi-with-mic,hostbased,keyboard-interactive,password user@hostname

Les références:

  1. Pour en savoir plus sur l' PreferredAuthenticationsoption, voir man ssh_config( voir en ligne ici ). Lisez également cette ssh -ooption dans les man sshpages de manuel (en ligne ici ).
Gabriel Staples
la source