87 votes

Comment désactiver osxkeychain comme aide à l'authentification dans la configuration de git ?

Je dois désactiver l'assistant d'authentification pour OS X : git credential-osxkeychain

Il est désactivé à la fois dans le fichier de configuration global et dans le fichier de configuration local. jamais ben activé. Pourtant, il continue à mémoriser mes informations de connexion à github.
Je suis sur un ordinateur portable, donc je ne veux pas d'accès automatique sans mot de passe à mes dépôts.
I volonté utiliser des clés ssh. Il s'agit d'un nouvel ordinateur, et l'ensemble de la configuration du système est encore en cours d'élaboration.
Pour l'instant, j'ai utilisé le https repo refs, et l'aide à l'authentification continue d'intervenir.

Voici mes fichiers conf :


git config --edit =>

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = false
[remote "origin"]
    url = https://github.com/user/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[branch "develop"]
    remote = origin
    merge = refs/heads/develop
[branch "deploy"]
    remote = origin
    merge = refs/heads/deploy

git config --global --edit =>

[user]
    email = ****************
    name = tom
[color]
    ui = true
[core]
    editor = subl -w
[github]
    user = tompave
[merge]
    conflictstyle = diff3
[push]
    default = simple

En outre, le fait de courir git config --global credential.helper ne renvoie rien (et c'est vrai).

Cependant, le fonctionnement git config credential.helper retours osxkeychain !

Comment cela est-il possible ? Je ne le vois pas dans le fichier de configuration local, où est-il défini ?

J'ai essayé de l'installer localement pour voir ce qui se passerait, et il n'en est rien. a fait apparaissent dans le repodir/.git/config . J'ai ensuite supprimé l'entrée... mais l'assistant est toujours présent et actif.

Je peux clairement voir son entrée dans le trousseau OS X.
Je peux le supprimer, puis git demandera à nouveau le mot de passe... mais dès que je le tape (disons, pour un git fetch ), l'entrée dans le trousseau est restaurée.

137voto

jszakmeister Points 8323

Pour aider à retrouver le réglage, j'essaierais d'utiliser :

git config --local credential.helper
git config --global credential.helper
git config --system credential.helper

La première vérifie la configuration du repo local, la seconde est votre ~/.gitconfig et le troisième est basé sur l'endroit où git est installé. En fonction de la réponse de l'assistant d'authentification, vous pouvez essayer d'utiliser l'équivalent de la commande --unset option :

git config --local --unset credential.helper
git config --global --unset credential.helper
git config --system --unset credential.helper

La dernière peut ne pas fonctionner si vous n'avez pas les autorisations nécessaires. Il se peut donc que vous deviez exécuter le dernier sous sudo pour qu'il fonctionne correctement. FWIW, vous avez peut-être installé les images git préconstruites pour Mac OS X. Si vous cat /usr/local/git/etc/gitconfig (ou /usr/local/etc/gitconfig si vous avez installé git via Homebrew ou en le construisant localement), vous verrez qu'il met en place l'aide à l'identification pour vous. La dernière commande ci-dessus devrait donc aider à résoudre ce problème.

73voto

Andrew Goodnough Points 788

Les autres réponses ont été très utiles. Le credential.helper n'apparaissait pour moi dans aucune des listes (en spécifiant --local, --global, etc) et il apparaissait toujours dans un 'git config -l'. L'utilisation de la commande --show-origin a montré qu'il provenait d'un fichier spécifique à OS X.

$ git config --show-origin --get credential.helper
file:/Applications/Xcode.app/Contents/Developer/usr/share/git-core/gitconfig    osxkeychain

17voto

Kim T Points 434

Dans mon cas, il était plus facile de courir :

git config --get-all --show-origin credential.helper

qui affiche la liste complète, y compris les chemins d'accès aux fichiers de configuration :

file:/Library/Developer/CommandLineTools/usr/share/git-core/gitconfig   osxkeychain
file:/Users/yourname/.gitconfig !aws codecommit credential-helper $@

Ouvrez ensuite le fichier de configuration :

sudo vim /Library/Developer/CommandLineTools/usr/share/git-core/gitconfig

Et commentez la ligne credential.helper=osxkeychain

8voto

Note : en GitHub Avec l'abandon des mots de passe au profit des jetons, ce problème risque de se poser à nouveau pour de nombreux utilisateurs.
Dans mon cas ( macos 11.5 BigSur ) la ligne de commande config git config --unset credential.helper n'a pas aidé, pas plus que les variations au niveau local, global ou du système. Les aide de GitHub n'a pas non plus résolu le problème.

La solution était la suivante :

  1. rechercher les fichiers de configuration en utilisant git config --get-all --show-origin credential.helper , comme indiqué par Kim T Vous obtiendrez probablement un résultat comme :
    file:/usr/local/git/etc/gitconfig osxkeychain
    file:/Users/XYZ/.gitconfig osxkeychain

  2. Si, comme moi, vous êtes novice en matière de macOS, vous devrez peut-être naviguer jusqu'à l'emplacement du fichier. Copiez simplement chaque sortie du fichier show-origin ci-dessus, allez dans Finder et dans le menu Go sélectionnez "Go to Folder", puis collez l'emplacement du fichier.

  3. dans chacun des fichiers de configuration, commentez osxkeychain comme indiqué ci-dessous :
    [credential]
    helper = osxkeychain
    devrait devenir
    #[credential]
    # helper = osxkeychain
    Il se peut que vous deviez obtenir des autorisations pour modifier les fichiers. Vous pouvez soit utiliser sudo lors de l'édition en ligne de commande ou aller à "Obtenir des informations" dans le menu en cliquant avec le bouton droit de la souris sur le fichier dans le Finder.

  4. Ensuite, pousser ou tirer à partir du repo. On vous demandera à nouveau votre mot de passe, mais vous devez maintenant fournir votre mot de passe jeton d'accès personnel au lieu de cela.

Et voilà, la magie devrait opérer.

4voto

VonC Points 414372

La configuration elle-même ( git config --unset credential.helper ) ne suffit pas.
Veillez à tuer tout git-credential-osxkeychain (en tant que décrite ici ), ou voir si le problème persiste après un redémarrage.

De même, lorsque vous utilisez GitHub pour Mac, vérifiez s'il existe une configuration utilisée en interne par cet outil.
Rappelez-vous que git config seul vérifiera les fichiers de configuration système, globale et locale.

Note : avec git 2.9, vous pouvez simplement définir l'option credential.helper à "chaîne vide" afin de le désactiver : voir ". Comment désactiver l'assistant d'authentification de git pour un seul dépôt ? ".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X