Vous pouvez éviter de saisir une phrase de passe si vous exécutez l'agent ssh. La première fois que vous faites un git pull, vous le faites de manière interactive, et l'agent ssh se souviendra de votre clé privée et vous pouvez exécuter git pull sans y être invité.
Tim Finer
Réponses:
162
Ce n'est pas exactement ce que vous avez demandé, mais pour http (s):
vous pouvez mettre le mot de passe dans le fichier .netrc (_netrc sous Windows). De là, il serait ramassé automatiquement. Il irait dans votre dossier personnel avec 600 autorisations.
vous pouvez également simplement cloner le dépôt avec, https://user:pass@domain/repomais ce n'est pas vraiment recommandé car cela montrerait votre utilisateur / pass dans de nombreux endroits ...
une nouvelle option consiste à utiliser l' assistant d'identification . Notez que les informations d'identification seraient stockées en texte clair dans votre configuration locale à l'aide de l'assistant d'informations d'identification standard. credential-helper avec wincred peut également être utilisé sur Windows.
Exemples d'utilisation de l'assistant d'identification
git config credential.helper store - stocke les informations d'identification indéfiniment.
git config credential.helper 'cache --timeout=3600'- magasins pendant 60 minutes
Pour l'accès basé sur ssh, vous utiliserez l'agent ssh qui fournira la clé ssh en cas de besoin. Cela nécessiterait de générer des clés sur votre ordinateur, de stocker la clé publique sur le serveur distant et d'ajouter la clé privée au fichier de clés approprié.
Pouvez-vous élaborer sur la partie SSH? Je suis en train de configurer une instance EC2 et j'aimerais qu'elle tire sans demander mon mot de passe et l'autoscale AWS. Ce schéma public / privé semble être une bonne solution.
Pedro Dusso
1
@PedroDusso sonne comme si ce fil est ce que vous recherchez
eis
2
J'ai fini d'utiliser le mécanisme de déploiement des clés, qui semble être une bonne solution. Merci!
Pedro Dusso
129
J'ai trouvé un moyen de fournir des informations d'identification pour une connexion https sur la ligne de commande. Il vous suffit de spécifier l'URL complète de git pull et d'y inclure les informations d'identification:
Vous n'avez pas besoin de faire cloner le référentiel avec les informations d'identification auparavant, cela signifie que vos informations d'identification ne se retrouvent pas .git/config. (Mais assurez-vous que votre shell ne vous trahit pas et stocke la ligne de commande dans un fichier d'historique.)
mot de passe n'est pas requis, et il n'est pas sûr d'écrire le mot de passe de cette façon
météore
n'est-ce pas l'une des choses que j'ai énumérées dans la réponse acceptée, déjà en 2012?
eis
8
@eis: Pas exactement. Le fait est que vous n'avez pas besoin de cloner le référentiel avec l'URL qui inclut les informations d'identification, mais que vous pouvez toujours extraire de l'URL avec les informations d'identification. L'effet est que les informations d'identification ne se retrouvent pas dans le fichier .git / config.
holgero
5
Si vous omettez la :passwordpartie, vous serez invité à entrer le mot de passe après avoir appuyé sur Entrée. De cette façon, votre mot de passe ne sera pas enregistré dans l'historique bash.
Ne répond pas directement à la question, mais j'ai trouvé cette question lors de la recherche d'un moyen de ne pas ressaisir le mot de passe chaque fois que je tire sur un serveur distant .
Eh bien, gitvous permet de mettre en cache vos informations d'identification pendant une durée limitée. Il est personnalisable git configet cette page l'explique très bien:
Ajustez le storebackend de l'exemple " " de l'assistant d'identification pour honorer les emplacements des fichiers de configuration XDG lorsqu'ils sont spécifiés.
Le doc dit maintenant:
Si non spécifié:
les informations d'identification seront recherchées à partir de ~/.git-credentialset $XDG_CONFIG_HOME/git/credentials, et
les informations d'identification seront écrites ~/.git-credentialssi elle existe, ou $XDG_CONFIG_HOME/git/credentialssi elle existe et que la première n'existe pas.
Ci-dessous cmd fonctionnera si nous n'avons pas @ dans le mot de passe:
git pull https://username:pass@[email protected]/my/repository
Si vous avez @ dans le mot de passe, remplacez-le par% 40 comme indiqué ci-dessous:
git pull https://username:pass%[email protected]/my/repository
Réponses:
Ce n'est pas exactement ce que vous avez demandé, mais pour http (s):
https://user:pass@domain/repo
mais ce n'est pas vraiment recommandé car cela montrerait votre utilisateur / pass dans de nombreux endroits ...Exemples d'utilisation de l'assistant d'identification
git config credential.helper store
- stocke les informations d'identification indéfiniment.git config credential.helper 'cache --timeout=3600'
- magasins pendant 60 minutesPour l'accès basé sur ssh, vous utiliserez l'agent ssh qui fournira la clé ssh en cas de besoin. Cela nécessiterait de générer des clés sur votre ordinateur, de stocker la clé publique sur le serveur distant et d'ajouter la clé privée au fichier de clés approprié.
la source
J'ai trouvé un moyen de fournir des informations d'identification pour une connexion https sur la ligne de commande. Il vous suffit de spécifier l'URL complète de git pull et d'y inclure les informations d'identification:
Vous n'avez pas besoin de faire cloner le référentiel avec les informations d'identification auparavant, cela signifie que vos informations d'identification ne se retrouvent pas
.git/config
. (Mais assurez-vous que votre shell ne vous trahit pas et stocke la ligne de commande dans un fichier d'historique.)la source
:password
partie, vous serez invité à entrer le mot de passe après avoir appuyé sur Entrée. De cette façon, votre mot de passe ne sera pas enregistré dans l'historique bash.Ne répond pas directement à la question, mais j'ai trouvé cette question lors de la recherche d'un moyen de ne pas ressaisir le mot de passe chaque fois que je tire sur un serveur distant .
Eh bien,
git
vous permet de mettre en cache vos informations d'identification pendant une durée limitée. Il est personnalisablegit config
et cette page l'explique très bien:https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux
Dans un terminal, exécutez:
Pour personnaliser le délai d'expiration du cache, vous pouvez faire:
Vos informations d'identification seront ensuite stockées en mémoire pendant la durée demandée.
la source
Notez que la façon dont l'assistant d'informations d'identification git «stockera» les changements de mots de passe non chiffrés avec Git 2.5+ (Q2 2014).
Voir commit 17c7f4d par Junio C Hamano (
gitster
)Le doc dit maintenant:
la source
Ci-dessous cmd fonctionnera si nous n'avons pas @ dans le mot de passe:
git pull https://username:pass@[email protected]/my/repository
Si vous avez @ dans le mot de passe, remplacez-le par% 40 comme indiqué ci-dessous:git pull https://username:pass%[email protected]/my/repository
la source