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

12

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

Maintenant, je veux configurer des clés SSH. J'ai généré des clés SSH sur mon ordinateur client, mais je voulais d'abord obtenir le démon SSH sur la configuration Mac. J'ai édité /etc/ssh_configet réglé PasswordAuthentication no. J'ai redémarré SSH avec ces commandes:, sudo launchctl unload /System/Library/LaunchDaemons/ssh.plistpuis sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist. Lorsque j'essaye de me connecter à nouveau au client, il me demande toujours mon mot de passe.

J'ai jeté un œil à ce message et à partir de la réponse, j'ai ajouté UsePAM noau fichier de configuration et redémarré le service avec launchctl. On me demande toujours un mot de passe.

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

Comment configurer mon ssh_configpour qu'il ne demande pas le mot de passe et accepte uniquement les clés SSH? Suis-je pas redémarrer le démon correctement? Y a-t-il une autre étape qui me manque?

beznez
la source

Réponses:

13

Je modifiais le mauvais fichier de configuration! Au lieu de cela /etc/ssh_config, j'ai édité private/etc/sshd_config. Je pense que cela aurait probablement aussi fonctionné si j'avais modifié /etc/sshd_configselon la réponse mise à jour de @GhostLyrics, mais je n'ai pas encore testé cela, donc je ne peux pas le dire avec certitude. Après cela, j'ai redémarré le service avec sudo launchctl stop com.openssh.sshdpuis sudo launchctl start com.openssh.sshdet j'ai pu obtenir le comportement souhaité. Voici la ressource où j'ai trouvé les informations pertinentes: /superuser/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 réussi à générer des clés SSH sur mon ordinateur client, à déplacer la clé publique ~/.ssh/authorized_keyssur Mac et à définir les autorisations pour ce fichier sur 644.

Il est important de noter que ces autorisations concernent ma clé publique . Mes autorisations de clé privée sont définies sur 600 sur mon ordinateur client. Ceci est vraiment important si vous avez à la fois votre clé publique et votre clé privée dans votre ~/.sshdossier et qu'il y a plusieurs utilisateurs sur le système. Si vos autorisations de clé privée sont définies sur 644, n'importe quel utilisateur peut lire votre clé privée et vous emprunter l'identité. En outre, les autorisations pour le ~/.sshdossier doivent être 700.

beznez
la source
5
En interne, /etc/sshd_configet /private/etc/sshd_configsont le même fichier. :)
GhostLyrics
8

/etc/ssh/ssh_configest le fichier de configuration du client qui est utilisé si vous n'en avez pas de plus spécifique dans votre répertoire personnel. Ce que vous souhaitez modifier, c'est /etc/ssh/sshd_configcelui du serveur.

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


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

Pour plus d' élaborer pourquoi il encore invites lors de la mise PasswordAuthentication noen /etc/ssh/ssh_configil est important de comprendre ce que vous avez configuré. "Lorsque vous établissez une connexion sortante via SSH, ne proposez pas d'authentification par mot de passe."

GhostLyrics
la source
Je n'en ai pas /etc/ssh/ssh_config, seulement un /etc/ssh_config. Je cours sur Yosemite. J'ai essayé le PasswordAuthentication nomais il me demande toujours le mot de passe.
beznez
Ah, je vois. Ce n'est pas ce que je veux. Je veux SSH de mon client Linux vers le Mac avec des clés et sans mot de passe. Que dois-je changer pour une connexion entrante ?
beznez le
/etc/sshd_configPasswordAuthentication no. Désolé pour la confusion. Veuillez me faire savoir comment je peux clarifier la réponse. :)
GhostLyrics
J'ai toujours le même comportement. Il me demande un mot de passe lorsque je passe de la machine Linux au Mac.
beznez le
Continuons dans le chat chat.stackexchange.com/rooms/info/34931/…
GhostLyrics