.ssh / config: «Option de configuration incorrecte: UseKeychain» sur Mac OS Sierra 10.12.6


91

J'essaie de configurer ma configuration ssh sur le Mac (Mac OS Sierra 10.12.6) de manière à stocker la phrase de passe de ma clé ssh dans le trousseau. Auparavant, je pouvais faire ça avec

ssh-add -K ~/.ssh/id_rsa

Mais récemment, cela ne semble plus fonctionner. Suite à cet article, il semble y avoir un changement dans le comportement de la configuration ssh sous Mac OS> 10.12.2 et la méthode recommandée pour résoudre ce problème est de l'ajouter UseKeychain yesà votre configuration ssh. Alors voici ma .ssh/configsection le Host *:

Host *
  Port 22
  ServerAliveInterval 60
  ForwardAgent yes
  IdentityFile ~/.ssh/id_rsa
  AddKeysToAgent yes
  UseKeychain yes

Lorsque j'essaye de ssh vers un hôte étranger, j'obtiens le message d'erreur suivant:

$ ssh my-host
/Users/USER/.ssh/config: line 16: Bad configuration option: usekeychain

Des idées pourquoi cela se produit et comment je peux y remédier? Merci!

Réponses:


169

Essayez de spécifier une autre option, à savoir IgnoreUnknowncomme ci-dessous:

Host *
  IgnoreUnknown UseKeychain
  UseKeychain yes

Vous pouvez trouver plus d'informations à ce sujet ici .

Si vous avez déjà une IgnoreUnknownvaleur, utilisez des valeurs séparées par des virgules

Host *
  IgnoreUnknown AddKeysToAgent,UseKeychain
  AddKeysToAgent yes
  UseKeychain yes

2
Contournez le fichier de configuration via ssh -F /dev/null ...temporairement, cela fonctionne pour moi.
Itachi

1
L'ajout IgnoreUnknown UseKeychainne fonctionne toujours pas pour moi, donc je supprime UseKeychain yescomplètement et cela fonctionne. Je ne suis pas sûr que ce soit la meilleure approche.
Hank Chan

Cette solution a fonctionné pour moi, mais je ne comprends pas pourquoi ce changement tout d'un coup? Je me connecte uniquement à mon compte DigitalOcean.
anjanesh

J'ai supprimé toutes les options et laissé l'hôte et le fichier d'identité. Github dit d'utiliser ces options mais elles ne fonctionnent pas non plus pour moi. Merci.
Natus Drew

51

La réponse acceptée m'a aidé mais n'a pas complètement résolu mon problème car j'avais plusieurs options qui étaient mauvaises. Voici un exemple de ce à quoi cela pourrait ressembler si vous rencontrez ce problème:

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

Je veux juste laisser ceci ici: j'ai également eu des problèmes de connexion à distance et cela s'est avéré être le problème. Le problème a été généré à l'aide de l'outil Sourcetree de Bitbucket, que j'ai désinstallé mais que j'ai laissé des restes qui ont empêché la connexion à distance
Connor

Merci! A travaillé sur MacOS mojave 10.14.6
brendan

Pourquoi ça marche? J'ai eu le même problème et cette réponse l'a résolu, mais je ne sais toujours pas pourquoi cela a fonctionné ou pourquoi j'ai eu le problème en premier lieu ..
Nishant Mehta

2

J'ai juste commenté la ligne et scp / ssh a recommencé à travailler pour moi.


1

Au lieu de ssh-add, tapez 'open .ssh / id_rsa' et ajoutez-le au trousseau

L'option UseKeychain n'est jamais apparue aussi mauvaise sur ma config, mais j'ai au début, avant tout autre hôte, ce qui suit

Host *
UseKeychain yes 

Host (...)

FYI, je pense que c'est le mauvais ordre. Si vous l'écrivez de cette façon, vos *règles seront ignorées. man ssh_configdit: "Puisque la première valeur obtenue pour chaque paramètre est utilisée, des déclarations plus spécifiques à l'hôte doivent être données vers le début du fichier, et les valeurs par défaut générales à la fin."
Télémaque

Pour info, je l'ai eu comme ça pendant près d'une décennie avec des dizaines de serveurs et je n'ai jamais eu de problème. Je ssh sur tant de serveurs chaque jour. Cependant, si quelqu'un trouve un problème réel avec cette configuration, ce sera peut-être le cas.
Ricardo Mendes

0

C'est la majuscule -K essayez minuscule -k !!

ssh-add -k ~/.ssh/id_rsa

Enter passphrase for /Users/tom/.ssh/id_rsa:
Identity added: /Users/tom/.ssh/id_rsa (/Users/tom/.ssh/id_rsa)

ssh-adda une -Koption au moins sur macOS. man ssh-add:-K When adding identities, each passphrase will also be stored in the user's keychain. When removing identities with -d, each passphrase will be removed from it.
uasi

0

J'ai eu le même problème et je me suis rendu compte que lorsque j'ai commencé à générer la clé en suivant les instructions. La première étape est la suivante.

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Je n'ai pas changé l'adresse e-mail mais bien sûr j'ai oublié de le faire: D. Assurez-vous donc de ne pas oublier cette étape et tout ira bien.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.