683 votes

macOS continue de me demander ma phrase de passe ssh depuis la mise à jour vers Sierra

Il avait l'habitude de se souvenir de la phrase de passe, mais maintenant il me la demande à chaque fois.

J'ai lu que je devais régénérer la clé publique avec cette commande, ce que j'ai fait :

ssh-keygen -y -f id_rsa > id_rsa.pub

mais ça n'a rien arrangé.

Comment faire pour que macOS se souvienne à nouveau de ma phrase de passe ?

19voto

Callum Rogers Points 6769

Une solution consiste à ajouter ce qui suit à votre fichier ~/.ssh/config :

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

Tiré de : https://www.reddit.com/r/osx/comments/52zn5r/difficulties_with_sshagent_in_macos_sierra/ Voir aussi : https://apple.stackexchange.com/a/264974/3810

9voto

Geek Goddess Points 191

J'ai essayé plusieurs réponses ici, mais j'avais toujours des problèmes avec le passage des clés à distance (comme lors de l'utilisation de capistrano). Pour résoudre ce problème, j'ai lu la technote d'apple et j'ai créé mon fichier de configuration. Je ne demande plus mon mot de passe !

https://developer.apple.com/library/content/technotes/tn2449/_index.html

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

8voto

Martijn Pieters Points 105

Ce matin, j'ai eu le même problème que vous après la mise à jour vers Sierra. Dans mon cas, le id_rsa Le fichier était crypté et après décryptage, il fonctionnait comme un charme.

  1. Vérifiez si votre id_rsa est crypté avec la commande suivante : cat ~/.ssh/id_rsa | head -2
  2. Si la deuxième ligne dit Proc-Type: 4,ENCRYPTED c'est crypté et vous pouvez essayer de le décrypter.
  3. Important : faites une sauvegarde de votre id_rsa fichier ! Utilisez la commande cp ~/.ssh/id_rsa ~/.ssh/id_rsa.bak
  4. Décryptez votre clé privée avec openssl rsa -in ~/.ssh/id_rsa -out ~/.ssh/id_rsa.decrypted
  5. Retirez la clé d'origine ( rm ~/.ssh/id_rsa ) et le remplacer par celui qui a été décrypté : mv ~/.ssh/id_rsa.decrypted ~/.ssh/id_rsa

Après ces étapes, vous devriez être en mesure d'utiliser à nouveau ssh.

7voto

Giacomo1968 Points 48326

J'ai également rencontré ce problème lorsque j'ai tenté de déployer du code à l'aide de l'outil Capistrano . C'est très frustrant. Voici deux méthodes que je connais pour résoudre ce problème.

Méthode 1 : Ajouter tous connus à l'agent SSH.

Une solution que j'ai trouvée est de lancer ssh-add avec le -A qui ajoute toutes les identités connues à l'agent SSH en utilisant toutes les phrases de passe stockées dans votre trousseau comme ceci :

ssh-add -A

Maintenant cela fonctionne mais ne persiste pas à travers les redémarrages. Donc, si vous voulez ne plus jamais vous soucier de cela, ouvrez simplement le dossier de votre utilisateur ~/.bash_profile comme ceci :

nano ~/.bash_profile

Et ajoutez cette ligne en bas :

ssh-add -A 2>/dev/null;

Maintenant, lorsque vous ouvrez une nouvelle fenêtre de Terminal, tout devrait être bon !

Méthode 2 : Ajouter seulement les clés SSH qui sont dans le trousseau de clés à l'agent.

Ainsi, alors que le ssh-add -A devrait fonctionner pour la plupart des cas de base, j'ai rencontré un problème récemment où j'avais 6-7 boîtes Vagrant (qui utilisent des clés/identités SSH pour l'accès) installées sur une machine en plus de l'option plus commune id_rsa.pub en place.

Pour faire court, j'ai fini par être verrouillé sur un serveur distant en raison d'un trop grand nombre d'essais infructueux basés sur les clés/identités SSH, car l'accès au serveur était basé sur un mot de passe et les clés/identités SSH sont des clés/identités SSH. L'agent SSH a donc essayé todo de mes clés SSH, a échoué et je n'ai même pas pu accéder à l'invite du mot de passe.

Le problème est que ssh-add -A ajoutera arbitrairement toutes les clés/identités SSH dont vous disposez à l'agent, même si cela n'est pas nécessaire, comme dans le cas des boîtes Vagrant.

Après de nombreux essais, ma solution a été la suivante.

Tout d'abord, si vous avez ajouté plus de clés/identités SSH à votre agent que nécessaire, comme le montre l'exemple suivant ssh-add -l puis les purger tous de l'agent comme ceci :

ssh-add -D

Une fois cela fait, démarrez l'agent SSH en tant que processus d'arrière-plan comme suit :

eval "$(ssh-agent -s)"

Maintenant, ça devient bizarre et je ne sais pas trop pourquoi. Dans certains cas, vous pouvez ajouter spécifiquement le ~/.ssh/id_rsa.pub clé/identité à l'agent comme suit :

ssh-add ~/.ssh/id_rsa.pub

Tapez votre phrase de passe, appuyez sur Return et vous devriez être prêt à partir.

Mais dans d'autres cas, il suffit de l'exécuter pour que la clé/identité soit ajoutée :

ssh-add -K

Si tout cela a fonctionné, tapez ssh-add -l et vous devriez voir une seule clé/identité SSH listée.

Tout va bien ? Maintenant, ouvrez votre .bash_profile :

nano ~/.bash_profile

Et ajoutez cette ligne au bas de l'écran ; commentez ou supprimez la ligne -A si vous l'avez mis en place :

ssh-add -K 2>/dev/null;

Cela permettra à la clé/identité SSH d'être rechargée dans l'agent SSH à chaque démarrage/redémarrage.

MISE À JOUR : Apple a maintenant ajouté une UseKeychain aux options de configuration de SSH ouvert et considère que ssh-add -A une solution également.

À partir de macOS Sierra 10.12.2, Apple (je suppose) a ajouté un UseKeychain pour les configurations SSH. En consultant la page de manuel (via man ssh_config ) montre les informations suivantes :

UseKeychain
        On macOS, specifies whether the system should search for
        passphrases in the user's keychain when attempting to use a par-
        ticular key. When the passphrase is provided by the user, this
        option also specifies whether the passphrase should be stored
        into the keychain once it has been verified to be correct.  The
        argument must be ``yes'' or ``no''.  The default is ``no''.

Ce qui revient à dire qu'Apple considère que la solution consiste à ajouter ssh-add -A à votre .bash_profile comme expliqué dans ce ticket Open Radar ou en ajoutant UseKeychain comme l'une des options d'un programme par utilisateur ~/.ssh/config .

5voto

camikiller Points 151

J'ai commencé à souffrir du même problème en utilisant MacOS Monterrey. Je viens de remarquer que lorsque j'ai essayé d'ajouter ma clé en utilisant :

 /usr/bin/ssh-add -K /path/to/my-key

J'ai vu ça :

WARNING: The -K and -A flags are deprecated and have been replaced
         by the --apple-use-keychain and --apple-load-keychain
         flags, respectively.  To suppress this warning, set the
         environment variable APPLE_SSH_ADD_BEHAVIOR as described in
         the ssh-add(1) manual page.

Alors j'ai utilisé :

/usr/bin/ssh-add --apple-use-keychain /path/to/my-key

J'ai ajouté cette réponse si quelqu'un d'autre souffre de ce problème en utilisant MacOS Monterrey.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X