Je viens de perdre un tas de référentiels de mon disque, donc je les ai clonés depuis GitHub. Ceux-ci demandent maintenant un nom d'utilisateur et un mot de passe chaque fois que je pousse quelque chose vers GitHub. Ceux qui n'ont pas été supprimés ne le font pas.
La seule solution que j'ai lue pour se débarrasser de l'invite de nom d'utilisateur / mot de passe est de générer la clé ssh. Le fait est que j'ai déjà une clé, sinon je ne pourrais pas pousser sans invites dans ces dépôts, que je n'ai pas cloné.
J'ai regardé git config
deux de mes référentiels, un que je peux pousser sans mot de passe et un que j'ai cloné. La seule différence était branch.master.remote
et les branch.master.merge
paramètres, que je désactive, ce qui fait git config
la même chose. Mais l'invite est toujours là.
Je ne suis même pas sûr que la génération d'une nouvelle clé ssh fonctionnera. Quelles sont mes options?
Réponses:
Ma conjecture:
Vos anciens référentiels utilisaient des télécommandes (
[email protected]:
oussh://[email protected]/
préfixes) SSH , qui utilisaient l'authentification par clé publique. (En fait, le serveur Github SSH ne demande jamais de mot de passe.)Vos nouveaux référentiels utilisent des télécommandes HTTP ( ), qui ne prennent en charge que l' authentification HTTP Basic par mot de passe et n'utilisent pas vos clés SSH.
https://username@github.com/
Modifiez vos URL distantes pour utiliser à nouveau SSH. Utilisez
git remote set-url
ou modifiez.git/config
pour ce faire. Remplaceravec juste
Vous pouvez même avoir une entrée dans votre
~/.gitconfig
qui indique à git de traduire les URL distantes de HTTP ou Git en SSH.De cette façon, si votre référentiel est configuré pour une télécommande HTTP ou Git, git ignorera ce paramètre lors de la transmission et utilisera SSH à la place.
(Un
insteadOf =
réglage est également possible, pour annuler à la fois la traction et la poussée.)la source