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.