24 votes

Comment utiliser les clés SSH et désactiver l'authentification par mot de passe ?

J'essaie d'accéder à un Mac à distance (j'ai un accès physique à ce Mac) par SSH depuis un ordinateur client Linux. Mon objectif est d'accéder à ce Mac depuis l'extérieur du réseau. Le transfert de port est configuré sur le routeur. Depuis mon ordinateur client, je suis en mesure de ssh user@ip pour l'IP publique et je peux accéder au Mac, donc la redirection de port fonctionne.

Je veux maintenant configurer les clés SSH. J'ai généré les clés SSH sur mon ordinateur client mais je voulais d'abord configurer le Daemon SSH sur le Mac. J'ai édité /etc/ssh_config et mettre PasswordAuthentication no . J'ai redémarré SSH avec ces commandes : sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist alors sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist . Lorsque j'essaie à nouveau de me connecter en SSH à partir du client, il me demande toujours mon mot de passe.

J'ai jeté un coup d'oeil à ce poste et à partir de la réponse, j'ai ajouté UsePAM no au fichier de configuration et redémarré le service avec launchctl encore. On me demande toujours un mot de passe.

J'ai également essayé la solution ici . On me demande toujours un mot de passe.

Comment puis-je configurer mon ssh_config pour qu'il ne demande pas le mot de passe et n'accepte que les clés SSH ? N'ai-je pas redémarré le démon correctement ? Y a-t-il une autre étape que j'ai manquée ?

28voto

beznez Points 469

J'ai édité le mauvais fichier de configuration ! Au lieu de /etc/ssh_config J'ai édité private/etc/sshd_config . Je pense que cela aurait probablement aussi fonctionné si j'avais édité /etc/sshd_config selon la réponse mise à jour de @GhostLyrics, mais je ne l'ai pas encore testé donc je ne peux pas en être sûr. Après cela, j'ai redémarré le service avec sudo launchctl stop com.openssh.sshd et ensuite sudo launchctl start com.openssh.sshd et j'ai pu obtenir le comportement souhaité. Voici la ressource où j'ai trouvé les informations pertinentes : https://superuser.com/questions/364304/how-do-i-configure-ssh-on-os-x

Voici les options de configuration que j'ai modifiées :

PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no

Après cela, j'ai pu générer avec succès des clés SSH sur mon ordinateur client, j'ai déplacé la clé publique vers ~/.ssh/authorized_keys sur le Mac et définissez les permissions pour ce fichier à 644.

Il est important de noter que ces permissions sont pour mon clé publique . Mon clé privée Les autorisations sont fixées à 600 sur mon ordinateur client. C'est vraiment important si vous avez à la fois votre clé publique et privée dans vos ~/.ssh et il y a plusieurs utilisateurs sur le système. Si votre clé privée les permissions sont fixées à 644, alors tout Un utilisateur pourrait lire votre clé privée et se faire passer pour vous. De plus, les permissions pour le ~/.ssh devrait être de 700.

17voto

Onns Points 71

J'utilise maintenant Apple-M1 (11.3) et j'ai constaté que le seul réglage possible est celui de l'heure. PasswordAuthentication no ne fonctionne pas, mais ces deux options sont suffisantes :

PasswordAuthentication no
ChallengeResponseAuthentication no

enter image description here enter image description here

11voto

bovium Points 919

/etc/ssh/ssh_config est le fichier de configuration du client qui est utilisé si vous n'en avez pas un plus spécifique dans votre répertoire personnel. Ce que vous voulez modifier est /etc/ssh/sshd_config qui est celui du serveur.

Vous voudrez probablement définir PermitRootLogin without-password (ou no ) et PasswordAuthentication no là.


Mise à jour : Puisque vous exécutez Yosemite, le fichier est /etc/sshd_config selon cette réponse : https://apple.stackexchange.com/a/167405/11135

Pour expliquer plus en détail pourquoi il y a toujours des messages d'avertissement lors de la mise en place de l'option PasswordAuthentication no sur /etc/ssh/ssh_config il est important de comprendre ce que vous avez configuré. "Lorsque vous faites un sortant connexion via SSH, ne propose pas d'authentification par mot de passe".

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X