J'ai des problèmes avec SSH KeychainIntegration dans OS X Mavericks. J'ai essayé de fouiller le site d'assistance d'Apple, mais je n'ai vu personne rencontrer mon problème. J'ai vu beaucoup de gens qui ne savent apparemment pas bien utiliser SSH, alors j'ai décidé d'essayer une autre communauté.
Tout d'abord, ma configuration fonctionne. Je peux utiliser ma paire de clés et ssh pour les hôtes selon mes besoins, avec mes informations d'identification mises en cache dans l'agent. Je peux voir mes informations d'identification mises en cache via "ssh-add -l", comme prévu. Je suis invité à entrer mon mot de passe par une boîte de dialogue de style OS X, avec une case à cocher qui dit "Mémoriser le mot de passe dans mon trousseau". J'ignore généralement cette case à cocher, mais lorsque je la coche, je vois ma clé stockée dans le trousseau. Cette clé stockée dans le trousseau n'est apparemment jamais utilisée, cependant, car j'ai un mot de passe dessus. C'est du moins ce que j'ai glané de diverses choses que j'ai lues. Lorsque j'entre mon mot de passe dans la boîte de dialogue et que la clé est mise en cache dans l'agent, je me connecte avec succès, mais pas avant qu'on me dise "L'enregistrement du mot de passe dans le trousseau a échoué". Voir ce message d'erreur m'a amené à approfondir mes recherches; Je n'aime pas recevoir une erreur à chaque connexion.
Les choses deviennent intéressantes quand on regarde la page de manuel SSH_CONFIG (5) . Il existe deux options pour gérer le trousseau, spécifiques à Apple: AskPassGUI et KeychainIntegration. Vous pouvez les basculer dans ~ / .ssh / config, et cela donne des résultats intéressants.
En définissant AskPassGUI sur non, vous ne serez plus invité à afficher une boîte de dialogue de style OS X, au lieu d'une ligne de texte d'entrée dans votre terminal. Pas de biggie. Mais si vous faites cela, ssh-agent ne mettra pas en cache vos informations d'identification. C'est clairement cassé et frustrant car je pourrais facilement vivre avec l'invite de texte si les informations d'identification étaient mises en cache.
En définissant KeychainIntegration sur no, ssh génère une erreur matérielle, comme suit:
~/.ssh/config: line 11: Bad configuration option: KeychainIntegration
~/.ssh/config: terminating, 1 bad configuration options
Ma question est simplement la suivante: existe-t-il un moyen de désactiver réellement l'intégration du trousseau OS X pour SSH?
Réponses:
Sur la base du code source de la version actuelle de SSH livrée avec Mavericks (située ici ), il semble que la fonctionnalité de l'option de configuration
KeychainIntegration
n'a pas encore été implémentée. Je fais cette hypothèse sur la base du contenu de openssh / readconf.h , qui ne fait pas référence à l'KeychainIntegration
option. Il fait cependant référence à l'askpassgui
option. La vérification de la structure "mots-clés" dans ce fichier montre en effet que l'keychainintegration
option n'est pas présente (ce qui implique à son tour que leoBadOption
code op (NULL) serait retourné).Un autre indice impliquant que la fonctionnalité que vous désirez n'est pas implémentée de la manière spécifiée par la page de manuel est le fichier: openssh / keychain.c . Le code source montre en fait que le
defaults
système (c'est-à-dire les fichiers de liste de propriétés) est utilisé pour stocker les paramètres liés àKeychainIntegration
. Plus précisément, les lignes de lastore_in_keychain
référence de fonction KeychainIntegration:Voici la
get_boolean_preference
fonction correspondante . Notez qu'il utiliseCFPreferencesCopyAppValue
pour obtenir un booléen à partir de l'identifiant d'application "org.openbsd.openssh":Cela peut impliquer que vous pouvez désactiver la
KeychainIntegration
fonctionnalité pour vous-même en exécutant cette commande par défaut:defaults write org.openbsd.openssh KeychainIntegration -bool NO
ou pour le définir pour tous les utilisateurs:
sudo defaults write /Library/Preferences/org.openbsd.openssh KeychainIntegration -bool NO
la source
KeychainIntegration
surNO
viadefaults
comme vous l'avez suggéré.ssh
puis se comporte comme si je l' avais misAskPassGUI
en~/.ssh/config
- aucune information d' identification sont mises en cache, et je suis invité à entrer le mot de passe tout le temps. Moins qu'utile. Pourtant, je pense que vous avez répondu à la question, et la réponse est, simplement: "Il peut être désactivé, mais il n'est pas entièrement mis en œuvre, et vous n'aimerez probablement pas les résultats."