Je veux utiliser un push and pull automatiquement dans GitExtension , sans entrer à chaque fois mon utilisateur et mon mot de passe dans une invite.
Alors, comment puis-je enregistrer mes informations d'identification dans git?
git
credentials
git-config
Edson Cezar
la source
la source
Réponses:
Courir
puis
fournir un nom d'utilisateur et un mot de passe et ces détails seront ensuite mémorisés plus tard. Les informations d'identification sont stockées dans un fichier sur le disque, avec les autorisations du disque «uniquement lisibles / inscriptibles par l'utilisateur» mais toujours en texte clair.
Si vous souhaitez modifier le mot de passe ultérieurement
Échouera, car le mot de passe est incorrect, git supprime ensuite l'utilisateur + le mot de passe incriminé du
~/.git-credentials
fichier, alors réexécutez maintenantpour fournir un nouveau mot de passe afin qu'il fonctionne comme précédemment.
la source
Vous pouvez utiliser le
git config
pour activer le stockage des informations d'identification dans git.Lors de l'exécution de cette commande, la première fois que vous tirez ou poussez à partir du référentiel distant, vous serez interrogé sur le nom d'utilisateur et le mot de passe.
Par la suite, pour les communications conséquentes avec le référentiel distant, vous n'avez pas à fournir le nom d'utilisateur et le mot de passe.
Le format de stockage est un
.git-credentials
fichier, stocké en texte brut.En outre, vous pouvez utiliser d'autres aides pour le
git config credential.helper
cache de mémoire, à savoir:qui prend une option
timeout parameter
, déterminant pour combien de temps les informations d'identification seront conservées en mémoire. À l'aide de l'assistant, les informations d'identification ne toucheront jamais le disque et seront effacées après le délai spécifié. Ladefault
valeur est900 seconds (15 minutes).
AVERTISSEMENT : si vous utilisez cette méthode, les mots de passe de votre compte git seront enregistrés dans
plaintext
format, parglobal .gitconfig file
exemple sous linux ce sera/home/[username]/.gitconfig
Si cela ne vous convient pas, utilisez
ssh key
plutôt un pour vos comptes.la source
git config credential.helper cache
les mots de passe ne seront pas enregistrés dans un fichier, uniquement stockés en mémoire. Voir: git-scm.com/docs/git-credential-cacheMéthode recommandée et sécurisée: SSH
Créez une clé Gshub ssh. Accédez à github.com -> Paramètres -> Clés SSH et GPG -> Nouvelle clé SSH. Enregistrez maintenant votre clé privée sur votre ordinateur.
Ensuite, si la clé privée est enregistrée sous id_rsa dans le répertoire ~ / .ssh / , nous l'ajoutons pour l'authentification en tant que telle:
Une méthode plus sûre: la mise en cache
Nous pouvons utiliser git-credential-store pour mettre en cache notre nom d'utilisateur et notre mot de passe pendant une période de temps. Entrez simplement ce qui suit dans votre CLI (terminal ou invite de commande):
Vous pouvez également définir le délai d'expiration (en secondes) comme tel:
Une méthode encore moins sécurisée
Git-credential-store peut également être utilisé, mais enregistre les mots de passe dans un fichier texte sur votre disque en tant que tel:
Réponse obsolète - Rapide et peu sûr
Il s'agit d'une méthode non sécurisée de stockage de votre mot de passe en texte brut. Si quelqu'un prend le contrôle de votre ordinateur, votre mot de passe sera dévoilé!
Vous pouvez définir votre nom d'utilisateur et votre mot de passe comme ceci:
la source
Activez l'assistant d'informations d'identification afin que Git enregistre votre mot de passe en mémoire pendant un certain temps:
Dans Terminal, entrez les informations suivantes:
Par défaut, Git mettra en cache votre mot de passe pendant 15 minutes.
Pour modifier le délai d'expiration du cache de mot de passe par défaut, entrez les informations suivantes:
Depuis l' aide de GitHub
la source
cache
pièce parstore
. Ainsi, la commande complète sera:git config --global credential.helper store
. Notez que cela stockera votre mot de passe dans un fichier en texte ouvert (sans aucun cryptage, pour ainsi dire).--timeout
paramètre?Vous pouvez modifier le
~/.gitconfig
fichier pour stocker vos informations d'identificationQui devrait déjà avoir
Vous devez ajouter au bas de ce fichier.
La raison pour laquelle je recommande cette option est qu'elle est globale et si à tout moment vous devez supprimer l'option, vous savez où aller et la modifier.
UTILISEZ UNIQUEMENT CETTE OPTION SUR VOTRE ORDINATEUR PERSONNEL.
Ensuite, lorsque vous tirez | clone | entrez votre mot de passe git, en général, le mot de passe sera enregistré au
~/.git-credentials
formatO DOM DOMAIN.XXX POURRAIT ÊTRE GITHUB.COM | BITBUCKET.ORG | AUTRE
Voir les documents
Redémarrez votre terminal.
la source
Mettez simplement vos informations d'identification dans l'URL comme ceci:
Vous pouvez le stocker comme ceci:
... exemple pour l' utiliser :
Maintenant, c'est pour lister les alias d'url:
git remote -v
... et que la commande pour supprimer l'un d'eux:
git remote rm myrepo
la source
[email protected]:Username/myRepo.git
https
, nonssh
, donc une solution comme celle-ci peut être utile là-bas. Notez également que vous pouvez utiliser un jeton oauth, qui est légèrement plus sûr que votre mot de passe GitHub.Pour le réglage global, ouvrez le terminal (de n'importe où) exécutez ce qui suit:
Par cela, tout dépôt git local que vous avez sur votre machine utilisera ces informations.
Vous pouvez configurer individuellement chaque repo en faisant:
exécutez ce qui suit:
Cela n'affecte que ce dossier (car votre configuration est locale).
la source
--local
tag ajouté mais encore une fois rien ne se passeVous pouvez utiliser git-credential-store pour stocker vos mots de passe non chiffrés sur le disque, protégés uniquement par les autorisations du système de fichiers.
Exemple
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
la source
Vous serez plus sûr si vous utilisez l'authentification SSH que l'authentification par nom d'utilisateur / mot de passe.
Si vous utilisez un Mac, l'authentification du client SSH est intégrée dans le trousseau MacOS. Une fois que vous avez créé une clé SSH, saisissez dans votre terminal:
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 auprès du serveur, tout ira bien.
la source
SSH
. En utilisant l'authentification HTTP, quelqu'un qui volerait les informations d'identification n'aurait accès qu'àGitHub/GitLab
. Les jetons sont également conçus pour avoir une durée de vie limitée.Après avoir parcouru des dizaines de messages SO, blogs, etc., j'ai essayé tous les méthodes, et c'est ce que j'ai trouvé. Il couvre TOUT.
Fiche d'informations sur les informations d'identification et les packages privés de Vanilla DevOps Git
Ce sont tous les moyens et outils par lesquels vous pouvez authentifier git en toute sécurité pour cloner un référentiel sans invite de mot de passe interactif .
The Silver Bullet
Vous voulez que Just Works ™? Ceci est la balle magique magique.
Obtenez votre jeton d'accès (voir la section dans la 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):
Pour Github, copiez et exécutez ces lignes textuellement :
Félicitations, maintenant aucun référentiel git de clonage d'outil automatisé ne sera obstrué par une invite de mot de passe, que ce soit en utilisant https ou l'un des styles d'url ssh.
Vous n'utilisez pas Github?
Pour les autres plateformes (Gitea, Github, Bitbucket), changez simplement 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 (dans Bash), Docker, CircleCI, Heroku, Akkeris, etc.
Plus d'informations
Voir la section ".gitconfig au lieu de" de la triche.
Sécurité
Voir la section "Sécurité" de la feuille de triche.
la source
git config --global credential."https://somegithost.com".username MyUserName
, qui est dans votre cheatsheet, mais pas ailleurs dans ce fil de réponse. Cette solution particulière ne répond pas à la question du PO, mais elle a répondu à la mienne, alors merci!Dans ce cas, vous avez besoin de git credential helper pour dire à git de se souvenir de votre mot de passe et nom d'utilisateur GitHub en utilisant la ligne de commande suivante:
et si vous utilisez le dépôt à l'aide de la clé SSH, vous avez besoin de la clé SSH pour vous authentifier.
la source
Aucune des réponses ci-dessus n'a fonctionné pour moi. J'ai continué à recevoir ce qui suit chaque fois que je le voulais
fetch
oupull
:Enter passphrase for key '/Users/myusername/.ssh/id_rsa':
Pour Mac
J'ai pu l'empêcher de demander ma phrase secrète en:
vi ~/.ssh/config
UseKeychain yes
:wq!
Pour les fenêtres
J'ai pu le faire fonctionner en utilisant les informations de ce stackexchange: https://unix.stackexchange.com/a/12201/348665
la source
En plus de modifier le
~/.gitconfig
fichier, vous pouvez le faire si vous demandez:ou
Remarque pour toujours utiliser des guillemets simples :
ou
Votre nom d'utilisateur et votre mot de passe peuvent utiliser certains caractères qui briseraient votre mot de passe si vous utilisez 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.la source
il suffit d'utiliser
et faites le git pull , il demandera le nom d'utilisateur et le mot de passe, à partir de maintenant il ne fournira aucune invite pour le nom d'utilisateur et le mot de passe, il stockera les détails
la source
Stockez 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 (jeton d'accès) sont stockés lorsque vous exécutezgit config --global credential.helper store
, ce que suggèrent les autres réponses, puis tapez votre nom d'utilisateur et votre mot de passe ou jeton d'accès:Donc, pour sauvegarder le nom d'utilisateur et le mot de passe (jeton d'accès):
Ceci est très utile pour le robot github, par exemple pour résoudre des builds automatisés Chain dans le même référentiel docker en ayant des règles pour une branche différente, puis le déclencher en poussant dessus dans
post_push
hooker dans docker hub.Un exemple de cela peut être vu ici dans stackoverflow.
la source
Un moyen rapide de mettre en cache les informations d'identification git:
agréable et sûr
le délai d'attente est en secondes.
la source
Après avoir lu le fil dans son intégralité et expérimenté la plupart des réponses à cette question, j'ai finalement trouvé la procédure qui fonctionne pour moi. Je veux le partager au cas où quelqu'un doit faire face à un cas d'utilisation complexe mais ne veut toujours pas passer par le thread complet et les pages de manuel gitcredentials , gitcredentials-store etc., comme je l'ai fait.
Trouvez ci-dessous la procédure que je suggère SI vous (comme moi) devez traiter avec plusieurs référentiels de plusieurs fournisseurs (GitLab, GitHub, Bitbucket, etc.) en utilisant plusieurs combinaisons différentes de nom d'utilisateur / mot de passe. Si, à la place, vous n'avez qu'un seul compte avec lequel travailler, vous feriez mieux d'employer le
git config --global credential.helper store
ougit config --global user.name "your username"
lequel solutions etc. qui ont été très bien expliquées dans les réponses précédentes.Ma solution:
> git config --global --unset credentials.helper
> cd /path/to/my/repo
> git config --unset credential.helper
> git config credential.helper 'store --file ~/.git_repo_credentials'
Remarque : cette commande crée un nouveau fichier nommé ".git_repo_credentials" dans votre répertoire personnel, dans lequel Git stocke vos informations d'identification. Si vous ne spécifiez pas de nom de fichier, Git utilise la valeur par défaut ".git_credentials". Dans ce cas, il suffit de lancer la commande suivante:
> git config credential.helper store
git config credential.*.username my_user_name
Remarque : utiliser "*" est généralement correct si vos référentiels proviennent du même fournisseur (par exemple GitLab). Si à la place, vos référentiels sont hébergés par différents fournisseurs, je suggère de définir explicitement le lien vers le fournisseur pour chaque référentiel, comme dans l'exemple suivant (pour GitLab):
git config credential.https://gitlab.com.username my_user_name
À ce stade, si vous émettez une commande nécessitant vos informations d'identification (par exemple
git pull
), il vous sera demandé le mot de passe correspondant à "my_user_name". Ceci n'est requis qu'une seule fois car git stocke les informations d'identification dans ".git_repo_credentials" et utilise automatiquement les mêmes données lors des accès ultérieurs.la source
D'après le commentaire de rifrol, sur Linux Ubuntu, de cette réponse , voici comment dans Ubuntu:
Certaines autres distributions fournissent le binaire pour que vous n'ayez pas à le construire.
Dans OS X, il est généralement fourni avec un module par défaut "osxkeychain", vous pouvez donc l'obtenir gratuitement.
la source
Consultez la documentation officielle de git:
https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage
la source