412 votes

Comment éviter la spécification du nom d'utilisateur et du mot de passe à chaque git push ?

I git push mon travail à un dépôt Git distant.

Chaque push me demandera de saisir username y password . Je voudrais l'éviter pour chaque poussée, mais comment configurer pour l'éviter ?

6 votes

Une réponse est disponible ici : stackoverflow.com/questions/6565357/

3 votes

Pour faire court : Pour github, il suffit de suivre ces deux liens aide.github.com/articles/generating-ssh-keys help.github.com/articles/changing-a-remote-s-url

0 votes

Pour bitbucket, veuillez suivre ce lien

448voto

First Zero Points 3318

1. Générer une clé SSH

Linux/Mac

Ouvrez le terminal pour créer les clés ssh :

cd ~                 #Your home directory
ssh-keygen -t rsa    #Press enter for all values

Pour Windows

(Ne fonctionne que si le programme commit est capable d'utiliser des certificats/clés ssh privées & publiques)

  1. Utilisez Putty Gen pour générer une clé
  2. Exportez la clé comme une clé SSH ouverte

Voici un walkthrough sur putty gen pour les étapes ci-dessus

2. Associer la clé SSH au référentiel distant

Cette étape varie en fonction de la configuration de votre télécommande.

  • S'il s'agit d'un dépôt GitHub et que vous disposez de privilèges d'administration, allez à l'adresse suivante paramètres et cliquez sur 'add SSH key'. Copiez le contenu de votre ~/.ssh/id_rsa.pub dans le champ intitulé "Clé".

  • Si votre référentiel est administré par quelqu'un d'autre, donnez à l'administrateur votre nom d'utilisateur et votre mot de passe. id_rsa.pub .

  • Si votre référentiel distant est administré par votre, vous pouvez utiliser cette commande par exemple :

    scp ~/.ssh/id_rsa.pub YOUR_USER@YOUR_IP:~/.ssh/authorized_keys/id_rsa.pub

3. Définissez votre URL distante sur un formulaire qui prend en charge SSH 1

Si vous avez effectué les étapes ci-dessus et que vous obtenez toujours l'invite de mot de passe, assurez-vous que l'URL de votre dépôt est de la forme suivante

git+ssh://git@github.com/username/reponame.git

à l'opposé de

https://github.com/username/reponame.git

Pour voir l'URL de votre repo, exécutez :

git remote show origin

Vous pouvez modifier l'URL avec :

git remote set-url origin git+ssh://git@github.com/username/reponame.git

[1] Cette section incorpore la réponse de la Commission européenne. <a href="https://stackoverflow.com/users/1094910/eric-p">Eric P</a>

0 votes

Sur Windows : Si vous utilisez la fenêtre git bash, l'option terminal fonctionnent également. La seule chose est que vous devez être certain de vouloir écraser le fichier id_rsa par défaut, et vous devez taper y lorsque le système vous demande si vous voulez écraser la clé id_rsa actuelle.

3 votes

J'ai exécuté l'étape 1 et l'étape 2 sur ubuntu mais il me demande toujours le passwd u_id. J'ai également exécuté : ssh -T git@github.com. Toujours le même problème. Que faire ?

4 votes

@Rads Avez-vous essayé l'autre réponse, en Eric P ?

128voto

Eric P Points 424

Si vous avez déjà configuré vos clés SSH et que vous obtenez toujours l'invite de mot de passe, assurez-vous que l'URL de votre dépôt est de la forme suivante

git+ssh://git@github.com/username/reponame.git

à l'opposé de

https://github.com/username/reponame.git

Pour voir l'URL de votre repo, exécutez :

git remote show origin

Vous pouvez changer l'URL avec git remote set-url comme ça :

git remote set-url origin git+ssh://git@github.com/username/reponame.git

0 votes

C'est ce qui a réglé mon problème après avoir utilisé git init localement, puis a essayé de pousser après avoir ajouté la télécommande à partir d'un nouveau dépôt sur le site GitHub.

0 votes

Brillant monsieur. J'ai réglé mon problème.

1 votes

Je ne sais pas pourquoi cela ne fait pas partie de la réponse acceptée. Merci !

42voto

Pavel Points 151

Il suffit d'utiliser --repo pour la commande git push. Comme ceci :

$ git push --repo https://name:password@bitbucket.org/name/repo.git

42 votes

Ou vous pouvez le définir par défaut avec git remote set-url origin https://name:password@github.com/repo.git

0 votes

Je note que le fait de définir l'URL comme un simple name@github.com/....git fonctionne aussi si cela ne vous dérange pas d'être harcelé pour le mot de passe à chaque fois.

0 votes

Pour les utilisateurs de Github, git push --repo https://github.com/Username/repo Il fonctionne sans le .git extension

8voto

ishan Points 405

J'ai utilisé le lien https ( https://github.com/org/repo.git ) au lieu du lien ssh ;

git@github.com:org/repo.git  

La commutation a résolu le problème pour moi !

3voto

Alan Haggai Alavi Points 34260

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