web-dev-qa-db-fra.com

Comment enregistrer un nom d'utilisateur et un mot de passe dans GIT?

Je veux utiliser un Push and pull automatiquement GitExtension, sans entrer mon utilisateur et mon mot de passe dans une invite, à chaque fois.

Alors, comment puis-je sauvegarder mes informations d'identification dans GIT?

711
Edson Cezar

Courir

git config --global credential.helper store

ensuite

git pull

fournir un nom d'utilisateur et un mot de passe et ces détails seront ensuite mémorisés. Les informations d'identification sont stockées dans un fichier sur le disque, avec les autorisations de disque "uniquement lisible par l'utilisateur", mais toujours en texte clair.

Si vous voulez changer le mot de passe plus tard

git pull

Echouera, car le mot de passe est incorrect, git supprime ensuite l'utilisateur incriminé + le mot de passe du fichier ~/.git-credentials, afin de l'exécuter à nouveau.

git pull

pour fournir un nouveau mot de passe afin que cela fonctionne comme précédemment.

1331
Neetika

Vous pouvez utiliser le git config pour activer le stockage des informations d'identification dans git.

git config --global credential.helper store

Lors de l'exécution de cette commande, lors de la première extraction ou du premier envoi du référentiel distant, vous serez interrogé sur le nom d'utilisateur et le mot de passe.

Ensuite, pour des communications conséquentes avec le référentiel distant, vous n'avez pas besoin de fournir le nom d'utilisateur et le mot de passe.

Le format de stockage est un fichier .git-credentials, stocké en texte brut.

En outre, vous pouvez utiliser d'autres aides pour le git config credential.helper, à savoir le cache de mémoire:

git config credential.helper cache <timeout>

qui prend un timeout parameter facultatif, déterminant pendant combien de temps les informations d’identité seront conservées en mémoire. En utilisant l'assistant, les informations d'identification ne toucheront jamais le disque et seront effacées après le délai spécifié. La valeur default est 900 seconds (15 minutes).


WARNING: Si vous utilisez cette méthode, les mots de passe de votre compte git seront enregistrés au format plaintext, dans le global .gitconfig file, par exemple sous Linux, il sera /home/[username]/.gitconfig

Si cela ne vous convient pas, utilisez plutôt un ssh key pour vos comptes.

245
Farhad Faghihi

Vous pouvez définir votre nom d'utilisateur et votre mot de passe comme ceci:

git config --global user.name "your username"

git config --global user.password "your password"
79
Andreas Bigger

Activez l'aide aux identifiants pour que Git conserve votre mot de passe en mémoire pendant un certain temps:

Dans Terminal, entrez les informations suivantes:

# Set git to use the credential memory cache
git config --global credential.helper cache

Par défaut, Git mettra votre mot de passe en cache pendant 15 minutes.

Pour modifier le délai d'expiration du cache du mot de passe par défaut, entrez les éléments suivants:

# Set the cache to timeout after 1 hour (setting is in seconds)
git config --global credential.helper 'cache --timeout=3600'

Depuis Aide GitHub

79
simhumileco

Vous pouvez éditer le fichier ~/.gitconfig pour qu'il stocke vos informations d'identification .

Sudo nano ~/.gitconfig

Qui devrait déjà avoir

[user]
        email = [email protected]
        user = gitUSER

Vous devriez ajouter au bas de ce fichier.

[credential]
        helper = store

La raison pour laquelle je recommande cette option est qu’elle est globale et que si vous devez à tout moment supprimer l’option, vous savez où aller et la modifier.

UTILISEZ UNIQUEMENT CETTE OPTION SUR VOTRE ORDINATEUR PERSONNEL.

Puis quand tu tire | clone | entrez votre mot de passe git, en général, le mot de passe sera enregistré dans ~/.git-credentials au format

https://GITUSER:[email protected]

WHERE DOMAIN.XXX POURRAIT ÊTRE GITHUB.COM | BITBUCKET.ORG | AUTRE

Voir Docs

Redémarrez votre terminal.

36
T04435

Il suffit de mettre vos informations d'identification dans l'URL comme ceci:

https://Username:Password@github.com/myRepoDir/myRepo.git

Vous pouvez stocker cela comme ceci:

git remote add myrepo https://Userna...

... exemple pour tiliser le:

git Push myrepo master


Maintenant, c’est à List les alias d’URL:

git remote -v

... et que la commande pour supprimer l'un d'entre eux:

git remote rm myrepo

20
Nadu

Vous pouvez utiliser git-credential-store pour stocker vos mots de passe non chiffrés sur le disque, uniquement protégés par les autorisations du système de fichiers.

Exemple

$ git config credential.helper store
$ git Push http://example.com/repo.git
Username: <type your username>
Password: <type your password>

[several days later]
$ git Push http://example.com/repo.git
[your credentials are used automatically]

Vous pouvez vérifier les informations d'identification stockées dans le fichier ~/.git-credentials

Pour plus d'informations, visitez git-credential-store - Aide pour stocker les informations d'identification sur le disque

16

Pour le paramétrage global, ouvrez le terminal (de n’importe où) exécuté comme suit:

  git config --global user.name "your username"
  git config --global user.password "your password"

Par ce biais, tout dépôt git local que vous avez sur votre machine utilisera ces informations.

Vous pouvez configurer individuellement pour chaque dépôt en faisant:

  • ouvrez le terminal dans le dossier repo.
  • exécuter suivant:

    git config user.name "your username"
    git config user.password "your password"
    

Cela n'affecte que ce dossier (car votre configuration est locale).

14
Tuananhcwrs

Vous serez plus en sécurité si vous utilisez l'authentification SSH par rapport à l'authentification par nom d'utilisateur/mot de passe.

Si vous utilisez un Mac, l'authentification du client SSH est intégrée au trousseau MacOS. Une fois que vous avez créé une clé SSH, tapez dans votre terminal:

ssh-add -K ~/.ssh/id_rsa

Cela ajoutera la clé privée SSH au trousseau MacOS. Le client git utilisera ssh lorsqu’il se connectera au serveur distant. Tant que vous avez enregistré votre clé publique ssh sur le serveur, tout ira bien.

14
Birol Efe

Dans ce cas, vous avez besoin de l'assistant d'identification de git pour indiquer à git de mémoriser votre mot de passe et votre nom d'utilisateur GitHub à l'aide de la ligne de commande suivante:

git config --global credential.helper wincred 

et si vous utilisez repo en utilisant la clé SSH, vous avez besoin de la clé SSH pour vous authentifier.

10
shaw

Outre la modification du fichier ~/.gitconfig, vous pouvez le faire si vous demandez:

git config --local --edit

ou

git config --global --edit

Note pour toujours utiliser single guillemets:

git config --local user.name 'your username'
git config --local user.password 'your password'

ou

git config --global user.name 'your username'
git config --global user.password 'your password'

Votre nom d'utilisateur et votre mot de passe peuvent utiliser des caractères qui briseraient votre mot de passe si vous utilisiez des guillemets doubles.

--local ou --global signifie que les paramètres de configuration sont enregistrés pour le projet ou pour l'utilisateur du système d'exploitation.

3
prosti

Après avoir parcouru des dizaines de SO posts, blogs, etc., j'ai essayé tous les méthode, et c'est ce que je suis venu avec. Il couvre tout.

Feuille de triche pour les informations d'identification et les paquets privés de Git Devilla DevOps

Ce sont tous les moyens et outils par lesquels vous pouvez authentifier en toute sécurité git pour cloner un référentiel sans invite de mot de passe interactive .

  • Clés publiques SSH
    • SSH_ASKPASS
  • Jetons d'accès à l'API
    • GIT_ASKPASS
    • .gitconfig placeOf
    • .gitconfig [informations d'identification]
    • .git-credentials
    • .netrc
  • Forfaits privés (gratuits)
    • node/npm package.json
    • python/pip/egg exigences.txt
    • Ruby Gemmes Gemfile
    • golang go.mod

La balle d'argent

Vous voulez Just Works ™? C'est la balle magique en argent.

Obtenez votre jeton d'accès (voir la section de la feuille de triche si vous avez besoin des instructions Github ou Gitea pour cela) et définissez-le dans une variable d'environnement (à la fois pour le développement local et le déploiement):

MY_GIT_TOKEN=xxxxxxxxxxxxxxxx

Pour Github, copiez et exécutez ces lignes telles quelles :

git config --global url."https://api:[email protected]/".insteadOf "https://github.com/"
git config --global url."https://ssh:[email protected]/".insteadOf "ssh://[email protected]/"
git config --global url."https://git:[email protected]/".insteadOf "[email protected]:"

Félicitations, maintenant, aucun référentiel d’outil automatisé de clonage d’outil ne sera obstrué par une invite de mot de passe, qu’il utilise https ou l’un des styles d’URL ssh.

Vous n'utilisez pas Github?

Pour les autres plates-formes (Gitea, Github, Bitbucket), il suffit de changer l'URL. Ne changez pas les noms d'utilisateur (bien qu'arbitraires, ils sont nécessaires pour des entrées de configuration distinctes).

Compatibilité

Cela fonctionne localement sous MacOS, Linux, Windows (en Bash), Docker, CircleCI, Heroku, Akkeris, etc.

Plus d'infos

Voir la section ".gitconfig placeOf" de la feuille de recherche.

Sécurité

Voir la section "Sécurité" de la feuille de triche.

3
CoolAJ86

Stocker le nom d'utilisateur et le mot de passe dans .git-credentials

.git-credentials est l'endroit où votre nom d'utilisateur et votre mot de passe sont stockés lorsque vous exécutez git config --global credential.helper store, ce que suggèrent d'autres réponses, puis tapez votre nom d'utilisateur et votre mot de passe:

https://${username}:${password_or_access_token}@github.com

Donc, afin de sauvegarder le nom d'utilisateur et le mot de passe:

git config —-global credential.helper store
echo “https://${username}:${password_or_access_token}@github.com“ > ~/.git-credentials

Ceci est très utile pour le robot github, par exemple. à résoudre Construit automatiquement une chaîne dans le même référentiel docker en ayant des règles pour une branche différente, puis déclenchez-le en y appuyant dans post_Push hooker dans le docker hub.

Un exemple de ceci peut être vu ici dans stackoverflow.

1
JiaHao Xu

Aucune des réponses ci-dessus n'a fonctionné pour moi. Je continuais à obtenir ce qui suit chaque fois que je voulais fetch ou pull:

Enter passphrase for key '/Users/myusername/.ssh/id_rsa':


Pour Mac

J'ai réussi à l'empêcher de demander ma phrase secrète en:

  1. Ouvrez la configuration en exécutant: _vi ~/.ssh/config_
  2. Ajout de ce qui suit: _UseKeychain yes_
  3. Enregistré et quitté: Appuyez sur Échap , puis entrez _:wq!_

Pour Windows

J'ai pu le faire fonctionner en utilisant les informations de cet stackexchange: https://unix.stackexchange.com/a/12201/348665

1
Gene Parcellano

D'après le commentaire de rifrol sur Linux Ubuntu, à partir de ceci réponse :

Sudo apt-get install libsecret-1-0 libsecret-1-dev
cd /usr/share/doc/git/contrib/credential/libsecret
Sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret

Certaines autres distributions fournissent le binaire afin que vous n'ayez pas à le construire.

Sous OS X, il est généralement "construit" avec un module par défaut de "osxkeychain", vous l'avez donc gratuitement.

0
rogerdpack