Comment désactiver les invites de mot de passe lorsque je fais git push / pull?


35

Chaque fois que je veux pushet / ou pulldepuis le terminal (sous Linux), je dois entrer un mot de passe. Comment puis-je supprimer cela pour qu'il tire et / ou pousse sans le mot de passe?


5
Quel est le protocole utilisé par votre adresse de dépôt? ssh? https?
VonC

Réponses:


23

Générez une paire de clés privée / publique pour une authentification sans mot de passe.

Pour Linux, vos clés sont stockées dans ~/.ssh.

Si vous avez déjà des fichiers ~/.sshnommés id_rsaet id_rsa.pub, vous avez déjà une paire de clés. Ajoutez le contenu de votre clé publique (c'est-à-dire id_rsa.pub) au fichier ~ / .ssh / authorized_keys du référentiel Git.

$ scp ~/.ssh/id_rsa.pub user@git.repo:id_rsa.tmp
$ ssh user@git.repo
$ cat id_rsa.tmp >> .ssh/authorized_keys

Si vous n'avez pas la paire de clés, générez-en une avec

$ ssh-keygen -t rsa

Lisez ceci pour plus d'instructions: http://inchoo.net/tools-frameworks/how-to-generate-ssh-keys-for-git-authorization/


@slhck Ah, je n'y ai pas pensé! Cependant, il sera bon de savoir le système d'exploitation utilisé par whirlwin avant de publier d'autres instructions.
Jin

Merci pour le pointeur. J'ai mis à jour la question en conséquence!
whirlwin

1
Lorsque j'exécute la première commande, j'obtiens: Vous semblez utiliser ssh pour cloner une URL git: //. Assurez-vous que votre option de configuration core.gitProxy et la variable d'environnement GIT_PROXY_COMMAND ne sont PAS définies. connexion perdue
MultiformeIngegno

26

Courir

git config credential.helper store

Cela stockera vos informations d'identification dans un dossier à l'intérieur de la racine. Vous devez exécuter git pull / push après cette commande et donner le nom d'utilisateur / pwd pour la première fois. Après cela, il ne demandera pas l'utilisateur / pwd. Détails sur https://git-scm.com/docs/git-credential-store


4
cela devrait être sélectionné comme la bonne réponse à cette question. OMI, l'OP voulait demander une solution pour httpséviter d'avoir à saisir le nom d'utilisateur / mot de passe encore et encore, sans passer à la sshsolution. 1+ pour cette réponse.
Giang Nguyen

1
Notez que l'aide aux informations d'identification stocke le mot de passe sur le disque non chiffré.
0xc0de

6

Vous pouvez également simplement modifier votre phrase secrète et la remplacer par une chaîne vide:
ssh-keygen -p


3
n'est-ce pas très faux? car il n'y aura plus de sécurité
titus

3
Merci. C'est le correctif pour les personnes qui ont une configuration de clé SSH mais ne savent pas pourquoi elles doivent toujours saisir une phrase secrète.
Cory Danielson

l'utilisation d'un agent ssh est l'alternative la plus sûre à cela. superuser.com/questions/426749/ssh-agent-and-ssh-add
Jay R. Wren

1

J'avais créé une nouvelle branche et après cela, lorsque je tirais, je devais entrer le nom d'utilisateur et le mot de passe. Ensuite, je résous le problème de re-clonage de la branche avec l'adresse ssh (qui se trouve sur le site de référentiel approprié).

Par exemple:

git clone git@github.com:sshare/GLE.git
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.