2016-09-22 09:21:53 +0000 2016-09-22 09:21:53 +0000
607
607
Advertisement

macOS continue à me demander ma phrase de passe ssh depuis que j'ai mis à jour Sierra

Advertisement

Avant, il se souvenait de la phrase de passe, mais maintenant il me la demande à chaque fois.

J'ai lu que j'avais besoin de 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 réglé.

Comment puis-je faire en sorte que macOS se souvienne à nouveau de ma phrase de passe ?

Advertisement

Réponses (12)

1168
1168
1168
2016-12-19 12:04:25 +0000

Dans la dernière version de macOS (10.12.2), cela est facile à corriger. Il suffit de modifier votre ~/.ssh/config et d'activer l'option UseKeychain :

Host *
    UseKeychain yes

Il n'est pas nécessaire de modifier quoi que ce soit d'autre. Maintenant, tout fonctionne comme avant les dernières mises à jour. Il n'est pas nécessaire d'ajouter des clés à ssh-agent.


Edit: Vous devrez peut-être encore entrer votre phrase de passe une fois. Si vous ne la connaissez pas, suivez ces instructions pour la révéler.

193
193
193
2016-09-23 12:53:05 +0000

J'ai eu le même problème. Le porte-clés MacOS Sierra demande sans cesse la phrase de passe. Votre identifiant doit être crypté avec une phrase de passe pour plus de sécurité. Essayez ensuite de l'ajouter au porte-clés ssh-add -K ~/.ssh/id_rsa

Si votre clé se trouve dans un autre dossier que ~/.ssh alors remplacez-la par le dossier correct.

Le porte-clés connaît maintenant votre clé ssh et, avec un peu de chance, tout fonctionne maintenant (le mien l'a fait)

75
Advertisement
75
75
2016-10-09 14:39:56 +0000

Cela a réglé mon problème similaire :

/usr/bin/ssh-add -K

Cela stocke les phrases de passe dans votre porte-clés.

Mise à jour (merci @EasyCo) : Cela fonctionne mais ne persiste pas entre les redémarrages. La solution de @jukka-suomela sur cette page fonctionne entre les redémarrages. Vous pouvez trouver cette réponse ici : https://superuser.com/a/1158050/234685

41
41
41
2016-10-29 17:16:24 +0000

Je n'ai eu à entrer la phrase de passe correcte qu'une seule fois et cela a commencé à fonctionner. Le problème était que je ne me souvenais pas de ma phrase de passe SSH originale, mais je l'ai récupérée en suivant ces étapes de Github :

  • Dans le Finder, cherchez l'application Keychain Access.
  • Dans Keychain Access, recherchez SSH.
  • Double-cliquez sur l'entrée correspondant à votre clé SSH pour ouvrir une nouvelle boîte de dialogue.
  • Boîte de dialogue Keychain AccessDans le coin inférieur gauche, sélectionnez Show password.
  • Vous serez invité à saisir votre mot de passe administratif. Saisissez-le dans la boîte de dialogue “Accès au trousseau de clés”.
  • Votre mot de passe vous sera révélé.
19
Advertisement
19
19
2016-09-27 14:40:37 +0000

Aucune des solutions ci-dessus n'a fonctionné après l'installation de Sierra sur El Capitan sur un nouveau MacBook Pro. Sierra n'enregistre pas les clés SSH dans le porte-clés.

Deux solutions ont fonctionné pour moi. La première consiste à ajouter la commande ssh-add -A &> /dev/null à ~/.bash_profile. Chaque fois que vous ouvrez le terminal, cette commande sera exécutée (la partie &> /dev/null envoie la sortie de la commande dans le fichier /dev/null).

Une solution plus compliquée mais un peu plus fluide consiste à créer un plist avec la commande qui est exécutée à chaque fois que le système d'exploitation est démarré comme suggéré dans Sauvegarde des clés SSH dans le porte-clés Sierra de macOS . Cela implique l'utilisation de Xcode pour créer le fichier.

18
18
18
2016-12-16 06:14:08 +0000

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/ A voir aussi : https://apple.stackexchange.com/a/264974/3810

8
Advertisement
8
8
2016-09-22 10:58:21 +0000

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

  1. Vérifiez si votre fichier 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, il est crypté et vous pourriez essayer de le décrypter
  3. Important : faites une sauvegarde de votre fichier id_rsa original ! 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é originale (rm ~/.ssh/id_rsa) et remplacez-la par la clé décryptée : mv ~/.ssh/id_rsa.decrypted ~/.ssh/id_rsa

Après ces étapes, vous devriez pouvoir utiliser à nouveau ssh.

8
8
8
2017-02-15 02:15:22 +0000

J'ai essayé plusieurs réponses ici, mais j'avais toujours des problèmes avec le passage des touches de la télécommande (comme lors de l'utilisation du capistrano). Pour résoudre ce problème, j'ai lu la technote de apple et j'en ai fait mon fichier de configuration. Plus besoin de me demander 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
5
Advertisement
5
5
2017-01-02 00:05:33 +0000

J'ai également eu ce problème lorsque j'ai essayé de déployer du code en utilisant Capistrano . C'est très frustrant. Voici deux méthodes que je connais pour régler ce problème.

Méthode 1 : Ajouter toutes les clés connues à l'agent SSH.

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

ssh-add -A

Maintenant cela fonctionne mais ne persistera pas lors des redémarrages. Donc si vous ne voulez plus jamais vous inquiéter de cela, ouvrez simplement le fichier ~/.bash_profile de votre utilisateur 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 bien se passer !

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

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

Pour faire court, j'ai fini par être bloqué hors d'un serveur distant à cause de trop d'essais ratés basés sur des clés/identités SSH puisque l'accès au serveur était basé sur un mot de passe et que les clés/identités SSH sont des clés/identités SSH. L'agent SSH a donc essayé toutes 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 va juste ajouter arbitrairement chaque clé/identité SSH que vous avez à l'agent même s'il n'est pas nécessaire de le faire ; comme dans le cas des boîtes Vagrant.

Ma solution, après de nombreux tests, était la suivante.

Premièrement, si vous avez plus de clés/identités SSH ajoutées à votre agent que nécessaire - comme indiqué par ssh-add -l alors purgez-les toutes de l'agent comme cela :

ssh-add -D

Une fois cela fait, démarrez l'agent SSH en 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 la clé/identité ~/.ssh/id_rsa.pub à l'agent de cette façon :

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 d'exécuter cette commande pour que la clé/identité soit ajoutée :

ssh-add -K

Si tout cela fonctionne, tapez ssh-add -l et vous devriez voir apparaître une seule clé/identité SSH.

Tout est bon ? Maintenant, ouvrez votre .bash_profile :

nano ~/.bash_profile

Et ajoutez cette ligne en bas ; commentez ou supprimez la version -A si vous l'avez 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.

UPDATE : Apple a maintenant ajouté une option UseKeychain aux options de configuration SSH ouvertes et considère que ssh-add -A est également une solution.

Depuis la version 10.12.2 de MacOS Sierra, Apple (je suppose) a ajouté une option UseKeychain aux options de configuration SSH. En consultant la page de manuel (via man ssh_config), vous trouverez 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 soit à ajouter ssh-add -A à votre .bash_profile comme expliqué dans ce ticket Open Radar soit à ajouter UseKeychain comme l'une des options dans un ~/.ssh/config par utilisateur.

4
4
4
2017-01-28 08:58:48 +0000

La réponse de Jukka Suomela est correcte, mais si vous utilisez openssh installé à partir de homebrew, alors vous devez également le désinstaller avec :

brew remove openssh

…pour revenir au système openssh par défaut, car celui de homebrew ne supporte pas l'entrée de configuration UseKeychain ssh.

2
Advertisement
2
2
2016-12-10 21:04:01 +0000

Vous avez besoin d'un fichier .plist ajouté à ~/Library/LaunchAgents/ pour exécuter ssh-add -A à chaque démarrage de macOS.

Il y a une seule commande qui fait cela (de SSH-keys-in-macOS-Sierra-keychain ) qui est :

curl -o ~/Library/LaunchAgents/ssh.add.a.plist https://raw.githubusercontent.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain/master/ssh.add.a.plist
2
2
2
2017-01-01 23:56:10 +0000

J'ai essayé toutes les solutions proposées ici, mais je n'ai pas de porte-clés installé dans mon Mac.

L'ajout à la ligne suivante en haut du fichier .ssh/config sur la machine locale et la machine distante a fonctionné pour moi.

PubkeyAcceptedKeyTypes=+ssh-dss
Advertisement