Activer la connexion ssh-key-only sur mon Mac pour 1 utilisateur

21

J'ai un Macbook Air auquel j'aimerais autoriser l'accès SSH à distance sans mot de passe. J'ai créé un utilisateur appelé avec remotepairlequel je me suis connecté et vérifié que je peux utiliser le Mac avec. J'ai également ajouté cet utilisateur à la liste des utilisateurs autorisés du service "Supprimer la connexion" et activé le service. Tout cela a été fait dans le panneau de configuration "Partage".

J'ai obtenu la clé publique d'un autre ordinateur et je l'ai ajoutée au fichier /Users/remotepair/.ssh/authorized_keys. Lorsque l'autre ordinateur ssh remotepair@<my ip>reçoit toujours une invite de mot de passe.

Comment désactiver cette invite de mot de passe?

Jason
la source
1
Je recommande d'ajouter "Authentification par clé SSH uniquement" à votre titre de question - la façon dont il se lit maintenant ressemble à une connexion de fenêtre de connexion GUI normale.
NReilingh

Réponses:

27

Pour désactiver l'authentification par mot de passe, vous devez modifier /etc/sshd_config. Dans Terminal:

sudo vim /etc/sshd_config

(ou remplacez-le par votre éditeur préféré)

Recherchez la ligne:

#ChallengeResponseAuthentication yes

Et changez-le en:

ChallengeResponseAuthentication no

Autrement dit, supprimez le #au début et remplacez yespar no.

Toutes les connexions ssh suivantes vous obligeront désormais à utiliser une clé ssh et ne vous demanderont pas de mot de passe. Assurez-vous que votre clé ssh fonctionne avant de le faire si vous n'avez pas d'accès local! Il n'est pas nécessaire de redémarrer le démon ssh ou quoi que ce soit car il est démarré à la demande pour chaque nouvelle connexion entrante. Notez que vous pouvez également voir une PasswordAuthenticationligne, mais qui est nodéjà par défaut .

Si vos clés ssh ne fonctionnent pas, c'est vraiment un problème distinct, mais cela répond à la question telle qu'elle est posée maintenant :)

Césium
la source
J'ai également besoin d'ajouter l'utilisateur au paramètre AllowUser. Je peux seulement deviner que la configuration de l'interface graphique n'a pas également modifié cette ligne de texte.
Jason
7
Remarque: dans les versions ultérieures de Mac OS X (certainement dans El Capitan), sshd_config a été déplacé vers /etc/ssh/.
zelk
2
Notez que depuis MacOS Sierra (v10.12.x), la valeur par défaut de PasswordAuthenticationa changé en yes, assurez-vous donc de la changer no.
Travis Clarke
3

Pour mettre à jour la réponse pour macOS Sierra (10.12.6 en particulier), il semble que le fichier de configuration soit maintenant /etc/ssh/sshd_config

2 lignes doivent être décommentées + modifiées pour désactiver complètement l'authentification par mot de passe: (Ce sont les lignes 57 à 62 inclusivement dans le sshd_configfichier par défaut )

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no

# Change to no to disable s/key passwords
ChallengeResponseAuthentication no

Comme mentionné précédemment, vous pouvez activer / désactiver l'accès ssh à partir de l'interface graphique System Preferences.app, et aucun redémarrage du démon n'est requis entre la modification de la configuration.

Ivan G.
la source
1

Vous devez vérifier les autorisations des répertoires impliqués: /Users/remotepair/et /Users/remotepair/.ssh, ils ne doivent pas autoriser l'accès en écriture aux "autres" utilisateurs. Mon .sshn'a des droits d'accès que pour le propriétaire.

En outre, sur le système distant, effectuez une opération ssh -v remotepair@yoursystempour voir quelles méthodes d'autorisation sont autorisées et tentées. Cherchez Authentications that can continue: publickey,password,keyboard-interactive. Vous devez peut-être activer RSAAuthenticationsur votre système.

vilmoskörte
la source
1

Sur un système de test ici, la désactivation de l'invite SSH a nécessité l'ajout des deux lignes suivantes /etc/sshd_config:

PasswordAuthentication no
ChallengeResponseAuthentication no

Les commentaires sshd_configsuggèrent également d'ajouter la ligne suivante:

UsePAM no
lava37
la source