68 votes

Git http - en toute sécurité, rappelez-vous les informations d'identification

Est-il un moyen sécurisé pour laisser git mémoriser mes informations d'identification lors de la connexion à distance à des dépôts HTTP(S)?

J'ai essayé de l' core.askpass approche détaillée en git-config laisser un script externe d'approvisionnement mes informations d'identification. Bien qu'il fonctionne très bien le nom d'utilisateur et le mot de passe est toujours stockés en clair dans le petit script shell.

65voto

Eddie Points 4270

git invoque cURL lors de l'exécution sur HTTP. Vous pouvez stocker des informations d'identification sécurisée par la mise en place d'un .netrc le fichier dans votre répertoire home de l'utilisateur et de le rendre privé de l'utilisateur (0600 dans Linux).

Le contenu du fichier de fournir le nom d'utilisateur et le mot de passe par domaine distant.

machine myRemoteServer
login myUserName
password s3cret

Voir http://stackoverflow.com/questions/3947530/git-push-fatal-failed/7177690#7177690 pour plein de côté de serveur de configuration, qui peut facilement inclure les appels vers votre serveur ldap.

53voto

Jakub Narębski Points 87537

Depuis (je crois), git version 1.7.8, à compter du 2 décembre 20111), git soutient donc appelé les informations d'identification aides:
voir gitcredentials(7) page de manuel

(Cette page de manuel a également décrit où core.askpass s'inscrit dans cette).

La valeur par défaut git installation comprend deux aides:

  • cache: Voir git-identification-cache(1) pour plus de détails.

    Cache des informations d'identification dans la mémoire pour une courte période de temps. Les informations d'identification stockées ne jamais toucher le disque, et sont oubliés après un délai configurable.

  • store: Voir git-identification-store(1) pour plus de détails.

    Stocker les informations d'identification indéfiniment sur le disque. Le fichier aura ses permissions du système de fichiers d'empêcher les autres utilisateurs sur le système de le lire, mais ne seront pas cryptés ou protégés d'une autre manière. La même sécurité qu' .netrc solution Eddie réponse


Il y a quelques tiers des informations d'identification des aides pour le stockage de nom d'utilisateur et mot de passe dans KDEWallet (KDE, GNOME Keyring, dans les informations d'Identification Windows Store, dans MacOS X porte-clés, etc.


Notes de bas de page:

1) Le configurer Git GitHub page d'Aide mentionne que

Vous avez besoin de git 1.7.10 ou plus récent pour utiliser les informations d'identification helper

14voto

VonC Points 414372

Depuis git 1.8.3 (Mai 2013), vous pouvez spécifier un chiffrés .netrc pour git à utiliser:

Une nouvelle lecture seule identification helper (en contrib/credential/netrc/) pour interagir avec l' .netrc/.authinfo fichiers a été ajouté.

Ce script vous permettra d' utiliser gpg-crypté netrc fichiers, en évitant le problème d'avoir vos informations d'identification stockées dans un fichier de texte brut.

-f|--file AUTHFILE
specify netrc-style files.  

Les fichiers avec l' .gpg extension sera décrypté par GPG avant l'analyse.
Plusieurs -f arguments sont OK. Elles sont traitées dans l'ordre, et la première entrée trouvée est de retour via les informations d'identification helper protocole (voir ci-dessous).

Lorsque n -f option est donnée, .authinfo.gpg, .netrc.gpg, .authinfo, et .netrc fichiers dans votre répertoire sont utilisés dans la présente ordonnance.

Pour permettre cette identification helper:

git config credential.helper '$shortname -f AUTHFILE1 -f AUTHFILE2'

(Notez que Git ajoute "git-credential-" pour le nom de l'aide et de regarder pour cela dans le chemin.)


Voir une étape complète par étape exemple à:
"Est-il un moyen de sauter le mot de passe à taper lors de l'utilisation d' https://github.com".

3voto

John Points 1342

Une telle option est d'utiliser SSH normale avec une paire clé publique/privée.

1voto

Clintm Points 832

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