La meilleure façon de restreindre certains users de SSH à publier l'authentification uniquement (désactiver l'authentification par mot de passe)

J'utilise Mac OS X Server.app sur Yosemite et j'ai SSH activé pour les users avec les parameters par défaut dans /etc/sshd_config (publickey et password auth activé par défaut). Cependant, je dois restreindre l'user local de git pour avoir access publiquement SEULEMENT via SSH.

L'information complète, le Server.app permet certaines options supplémentaires de Kerberos et GSSAPI (même si je ne suis pas sûr à 100% de l'effet de ces questions sur mes questions ci-dessous):

 # Kerberos options KerberosAuthentication yes KerberosOrLocalPasswd yes KerberosTicketCleanup yes # GSSAPI options GSSAPIAuthentication yes GSSAPICleanupCredentials yes GSSAPISsortingctAcceptorCheck yes GSSAPIKeyExchange no 

/etc/sshd_config dit ce qui suit:

 # To disable tunneled clear text passwords both PasswordAuthentication and # ChallengeResponseAuthentication must be set to "no". 

Cependant, ChallengeResponseAuthentication n'est pas autorisé dans les instructions de correspondance, alors j'ai essayé simplement de désactiver l'authentification par mot de passe uniquement:

 Match User git PasswordAuthentication no 

Cela ne fonctionne pas – j'ai encore pu me connecter avec un nom d'user / mot de passe à git@my.server 🙁

Cependant, append KbdInteractiveAuthentication no semblait fonctionner correctement:

 Match User git PasswordAuthentication no KbdInteractiveAuthentication no 

Maintenant, je reçois l' Permission denied (publickey,gssapi-keyex,gssapi-with-mic) lorsque vous essayez de vous connecter sans key publique. Cela semble indiquer qu'il existe encore des methods en dehors de publickey qui permettront la connection à partir de l'user git (c. gssapi-keyex et gssapi-with-mic )

Il semble qu'une meilleure approche consiste à simplement restreindre la méthode d'authentification à publickey :

 Match User git AuthenticationMethods publickey 

Cela donne la réponse 'Autorisation refusée (publickey).

Des questions:

  1. Quelle est la différence entre ChallengeResponseAuthentication et KbdInteractiveAuthentication ? Pourquoi KbdInteractiveAuthentication est- KbdInteractiveAuthentication autorisée dans les instructions de correspondance, mais pas ChallengeResponseAuthentication ?
  2. Existe-t-il des inconvénients / préoccupations de security avec l'approche AuthenticationMethods publickey ?
  3. (Bonus si vous pouvez m'aider à comprendre gssapi-keyex / gssapi-with-mic et comment ils se rapportent aux options GSSAPI / Kerberos activées)

One Solution collect form web for “La meilleure façon de restreindre certains users de SSH à publier l'authentification uniquement (désactiver l'authentification par mot de passe)”

Il y a un bon résumé de la différence entre ChallengeResponseAuthentication et KbdInteractiveAuthentication à http://blog.tankywoo.com/linux/2013/09/14/ssh-passwordauthentication-vs-challengeresponseauthentication.html – le résumé est que ChallengeResponse finit souvent par requestr seulement mot de passe (mais insiste sur le fait qu'il soit fourni de manière interactive).

KbdInteractiveAuthentication et ChallengeResponseAuthentication sont différentes. C'est simplement que ChallengeResponseAuthentication peut se révéler simplement pour get un mot de passe dans des cas simples.

ChallengeResponseAuthentication est un paramètre global et ne peut pas être spécifié dans une clause Match – voir la page man sshd_config pour plus de détails.

La spécification explicite d' AuthenticationMethods publickey pour l'user git devrait fonctionner correctement et est meilleure que de désactiver ceux que vous ne voulez pas (comme la list pourrait changer).

Les options gssapi entrent en jeu si vous travaillez dans un environnement Kerberos (tel qu'un domaine Active Directory).

  • Debian: SSH: "PermitRootLogin = forcé-commands-seulement" arrêté de fonctionner
  • tunnel ssh pour une connection mysql
  • OpenSSH v5.9 est-il toujours considéré comme sécurisé?
  • Erreur SSH: type de clé inconnue '----- BEGIN'
  • SSH Jump Host et passer à un directory spécifique
  • Comment save "l'exécution à distance sur SSH"
  • Comment activer sshd sur Fedora 11?
  • SSH trouve des directorys avec des lettres majuscules
  • CopSSH SFTP: limite les users à accéder à leur directory personnel uniquement
  • Déterminez quand une dernière personne a ouvert une session à un serveur à partir d'une clé
  • L'utilisation de rsync sur ssh à l'aide de la key publique / privée ne fonctionne pas
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de réseau.