70 votes

La boîte de dialogue du mot de passe apparaît lorsque les autorisations de la clé privée SSH sont définies sur 0600

J'ai installé ma clé privée SSH dans ~/.ssh/id_rsa et définir ses permissions à 0600 . Lorsque je me connecte à un serveur SSH qui utilise ma clé privée dans Terminal.app par l'intermédiaire de ssh une boîte de dialogue s'ouvre et me demande d'entrer mon mot de passe pour accéder à l'application. id_rsa fichier :

enter image description here

Je vois la même boîte de dialogue lorsque je me connecte à un serveur FTP avec le client Interarchy GUI.

Mise à jour : Je vois cette boîte de dialogue à chaque fois que je me connecte, que je coche ou non la case "Mémoriser le mot de passe dans mon trousseau". Elle apparaît deux fois de plus si l'on clique sur le bouton OK, indépendamment de ce qui est saisi dans le champ du mot de passe.

Quand je relâche ces permissions pour, disons, 0640 Je ne vois plus de boîte de dialogue me demandant mon mot de passe, mais ssh s'arrête avec l'erreur suivante :

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0640 for '/Users/myusername/.ssh/id\_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /Users/myusername/.ssh/id\_rsa

Je trouve la boîte de dialogue du mot de passe extrêmement ennuyeuse et je suis sûr qu'il doit y avoir un moyen d'éviter d'avoir à rejeter cette boîte de dialogue SSH a besoin d'accéder à l'ordinateur de l'entreprise. id_rsa fichier.

Remarque : j'utilise Mac OS X 10.6.8.

91voto

MarvinS Points 367

D'abord, exécutez ssh-add -K et vérifiez si cela résout votre problème.

Si non :

  • Suppression du fichier rsa_id.pub et régénération d'un nouveau fichier (doit être dans ~/.ssh/) :

    ssh-keygen -y -f id_rsa > id_rsa.pub
  • Vérifiez que les permissions sont fixées à 600 pour id_rsa et id_rsa.pub (doivent être dans ~/.ssh/) :

    chmod 600 id_rsa*
  • Exécutez la commande suivante :

    ssh-add -K

Après avoir fait cela, je n'ai plus été invité à donner le mot de passe de ma clé privée. Cette opération semble placer le mot de passe de la clé privée dans l'emplacement correct du trousseau pour qu'OS X puisse l'utiliser.

70voto

Assurez-vous d'avoir un correspondant id_rsa.pub o id_dsa.pub dans votre ~/.ssh répertoire.

Quand j'ai eu un id_rsa mais pas un correspondant id_rsa.pub Mac OS X n'arrêtait pas de faire apparaître la boîte de dialogue et se souvenir du mot de passe dans mon trousseau ne faisait rien.

cd ~/.ssh
ssh-keygen -y -f id_rsa > id_rsa.pub

a généré le fichier de clé publique approprié pour moi.

Si vous aviez déjà votre fichier public à cet endroit (renommez-le sous un autre nom) et que vous générez à nouveau la clé publique en utilisant la commande ci-dessus, vous remarquerez que la clé générée et l'ancienne ne sont pas égales. D'une manière ou d'une autre, les anciennes versions de Mac OS X ont généré une clé publique que Lion n'aime plus, la générer à nouveau corrige ce problème.

Pour les curieux, la clé est exactement la même, la partie qui change est qu'il n'y a plus de section "commentaires" après la clé sur le fichier.

20voto

nathancahill Points 251

Dans mon cas ssh-add -K ne faisait pas l'affaire, je devais spécifier la clé :

ssh-add ~/.ssh/id_rsa

18voto

orkoden Points 1092

Pour MacOS 10.12 Sierra ssh-add -K doit être exécuté après chaque redémarrage. Pour éviter cela, créez ~/.ssh/config avec ce contenu.

Host *
   AddKeysToAgent yes
   UseKeychain yes
   IdentityFile ~/.ssh/id_rsa

Apple a ajouté Technote 2449 ce qui explique ce qui s'est passé.

Avant MacOS Sierra, ssh présentait une boîte de dialogue demandant votre phrase de passe et offrait la possibilité de la stocker dans le trousseau de clés. Cette interface a été abandonnée il y a quelque temps et a été supprimée.

Edit : Apparemment, il n'est pas nécessaire de spécifier un hôte et une clé. Ajouter ceci est suffisant.

AddKeysToAgent yes
UseKeychain yes

12voto

zzz Points 1686

Vous devez entrer la phrase de passe pour la clé privée quelque part, et OS X utilise ssh-agent par défaut.

Si vous voulez utiliser ssh-agent mais que vous voulez éviter la boîte de dialogue de l'interface, vous pouvez utiliser ssh-add pour ajouter la phrase de passe à l'agent et ensuite ssh comme d'habitude.

Si vous ne souhaitez pas utiliser ssh-agent et que ssh demande plutôt la phrase de passe, désactivez la variable d'environnement SSH_AUTH_SOCK.

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