Je viens de commencer à utiliser git et je ne parviens pas à le faire mémoriser ma phrase de passe J'utilise cmd.exe surélevé et mon hôte git est github et j'ai créé une clé ssh comme ce guide sur github
mais je reçois toujours
*\subnus.mvc>git push origin master
Enter passphrase for key '/c/Users/Subnus/.ssh/id_rsa':
GIT_SSH
dans votre environnement (si nécessaire) et git / ssh se souviendra de votre phrase secrète via ssh-agent. Voir ma réponse ci-dessous pour des instructions plus détaillées.Réponses:
Je me rends compte que cette question se pose il y a deux ans, mais j'avais le même problème et plusieurs réponses ici ne répondaient pas complètement à la question pour moi. Voici deux solutions étape par étape, selon que vous utilisez TortoiseGit en plus de msysgit ou non.
La première solution suppose Windows, msysgit et PuTTY.
Accédez à la boîte de dialogue des variables d'environnement de Windows (clic droit sur "Ordinateur", Cliquez sur "Propriétés", Cliquez sur "Paramètres système avancés" ou l'onglet "Avancé", cliquez sur "Variables d'environnement"). Ajoutez la variable d'environnement suivante:
GIT_SSH = C: \ full \ chemin \ vers \ plink.exe
Remplacez "C: \ full \ path \ to" par le chemin d'installation complet de PuTTY, où se trouve plink.exe. Il est probablement préférable de l'ajouter à la section "Variables utilisateur". Assurez-vous également que le chemin que vous utilisez pour plink.exe correspond au chemin que vous utilisez pour Pageant (pageant.exe). Dans certains cas, vous pouvez avoir plusieurs installations de PuTTY car il peut être installé avec d'autres applications. L'utilisation de plink.exe à partir d'une installation et de pageant.exe à partir d'une autre vous causera probablement des problèmes.
Ouvrez une invite de commande.
Si vous essayez de vous connecter à un référentiel git hébergé sur Github.com, exécutez la commande suivante:
plink.exe [email protected]
Si le référentiel git auquel vous essayez de vous connecter est hébergé ailleurs, remplacez [email protected] par un nom d'utilisateur et une URL appropriés. (En supposant Github) Vous devez être informé que la clé d'hôte du serveur n'est pas mise en cache et vous demander si vous lui faites confiance. Répondez par un y . Cela ajoutera la clé d'hôte du serveur à la liste des hôtes connus de PuTTY. Sans cette étape, les commandes git ne fonctionneront pas correctement. Après avoir appuyé sur Entrée, Github vous informe que Github ne fournit pas d'accès au shell. C'est bien ... nous n'en avons pas besoin. (Si vous vous connectez à un autre hôte et que cela vous donne un accès shell, il est probablement préférable de mettre fin au lien sans rien faire d'autre.)
La deuxième solution suppose Windows, msysgit et TortoiseGit.
TortoiseGit est livré avec des exécutables PuTTY et une version spécialement modifiée de plink (appelée TortoisePlink.exe) qui facilitera les choses.
Accédez à la boîte de dialogue des variables d'environnement de Windows (clic droit sur "Ordinateur", Cliquez sur "Propriétés", Cliquez sur "Paramètres système avancés" ou l'onglet "Avancé", cliquez sur "Variables d'environnement"). Ajoutez la variable d'environnement suivante:
GIT_SSH = C: \ chemin \ complet \ vers \ TortoisePlink.exe
Remplacez "C: \ full \ path \ to" par le chemin d'installation complet vers TortoiseGit, où TortoisePlink.exe se trouve. Il est probablement préférable de l'ajouter à la section "Variables utilisateur". Assurez-vous également que le chemin que vous utilisez pour TortoisePlink.exe correspond au chemin que vous utilisez pour Pageant (pageant.exe). Dans certains cas, vous pouvez avoir plusieurs installations de PuTTY car il peut être installé avec d'autres applications. L'utilisation de TortoisePlink.exe à partir de l'installation de TortoiseGit et de pageant.exe à partir d'une autre installation d'une autre application (ou d'une installation PuTTY autonome) vous causera probablement des problèmes.
Terminé! Les commandes Git devraient maintenant fonctionner à partir de la ligne de commande. La première fois que vous essayez de vous connecter à votre référentiel git, vous serez probablement informé que la clé d'hôte du serveur n'est pas mise en cache et vous demandera si vous faites confiance au serveur. Cliquez sur "Oui". (Ceci est TortoisePlink.exe en action.)
Vous voudrez peut-être que pageant.exe charge automatiquement votre fichier .ppk au démarrage , en fonction de la fréquence à laquelle vous en aurez besoin.
La troisième solution suppose Window, msysgit et l'invite de commande native.
start-ssh-agent
la source
start-ssh-agent
la ligne de commande pour qu'elle enregistre votre phrase de passe SSH.Chaque fois que je configure un nouveau bureau, j'oublie ces instructions, alors j'ajoute une autre réponse ici car je tombe dessus aussi souvent!
Étapes rapides pour les utilisateurs impatients comme moi
OpenSSH Authentication Agent
service et faites-le démarrer automatiquement.ssh-add
sur la ligne de commande.$ENV:GIT_SSH=C:\Windows\System32\OpenSSH\ssh.exe
à votre session ou de manière permanente à votre environnement utilisateur.Étapes détaillées: aperçu
Windows est livré avec OpenSSH depuis un certain temps maintenant. Il comprend tous les bits nécessaires pour que ssh fonctionne avec Git, mais il semble toujours avoir besoin d'un peu de TLC avant de fonctionner à 100% de manière transparente. Voici les étapes que j'ai suivies avec succès à partir de la version Windows 10.0.18362.449 (vous pouvez voir votre version de Windows 10 en ouvrant un shell cmd.exe et en tapant
ver
).Je suppose ici que vous avez déjà la configuration de votre clé SSH et se trouve à
~/.ssh/id_rsa
Activez le service ssh-agent sur votre boîte Windows 10.
OpenSSH Authentication Agent
service dans la liste.OpenSSH Authentication Agent
service et choisissez «Propriétés».Startup type:
parAutomatic
.Start
bouton pour changer l'état du service enRunning
.OK
et fermez l'application Services.Ajoutez votre clé au
ssh-agent
ssh-agent
:ssh-add
(vous pouvez ajouter le chemin d'accès à votre clé comme premier argument s'il diffère de la valeur par défaut) .Essayez Git + SSH
git clone [email protected]:octocat/Spoon-Knife
Définissez votre
GIT_SSH
variable d'environnementDans n'importe quelle session, vous pouvez simplement définir cette variable d'environnement et l'invite de votre phrase de passe cessera de s'afficher et ssh l'utilisera
ssh-agent
en votre nom. Vous pouvez également définir votre phrase secrète dans l'environnement de votre utilisateur de manière permanente.Pour définir
GIT_SSH
uniquement dans le shell actuel:ssh.exe
:$Env:GIT_SSH=$((Get-Command -Name ssh).Source)
Pour définir
GIT_SSH
définitivementVariable name:
champ sur GIT_SSHVariable value:
champ sur path-to-ssh.exe (généralementC:\Windows\System32\OpenSSH\ssh.exe
).Notez que cela va probablement changer avec de nouvelles étapes / procédures au fur et à mesure que Windows 10 progresse et que j'en apprends plus. Je vais essayer de garder cela à jour, j'attends avec impatience les commentaires dans les commentaires.
la source
Pour toute personne ayant besoin d'instructions plus détaillées, consultez cette page: http://help.github.com/working-with-key-passphrases/
la source
msysgit
shell.notepad ~/.profile
et copié le contenu de ce lien, redémarré le Git Bash, entré mon mot de passe, profité ...Si vous utilisez Git bash sous Windows, vous pouvez effectuer les opérations suivantes:
il demandera une phrase de passe dans la deuxième commande, et c'est tout. Chaque action supplémentaire que vous devrez faire (qui une fois la phrase de passe requise) ne vous demandera pas la phrase de passe (voir un exemple dans la capture d'écran ci-dessous):
la source
Une solution supplémentaire 5 ans, 8 mois et 6 jours après la publication de la question ne serait pas une mauvaise idée, alors voilà.
REMARQUE: suppose que vous utilisez un ordinateur Windows.
PATH
variable d'environnement, cela devrait fonctionner. Si vous ne le faites pas, courezgit-credential-winstore -i C:\Path\To\Git.exe
.La prochaine fois que vous tenterez de vous engager dans un référentiel, vous serez invité à entrer vos informations d'identification. Ça devrait être ça. Vous ne serez plus invité à fournir vos informations d'identification tant que vous n'aurez pas changé votre mot de passe.
Juste pour votre connaissance ... Vos informations d'identification sont stockées dans le magasin d'informations d'identification Windows
la source
Si vous définissez un mot de passe pour votre fichier de clé, vous devrez toujours le saisir lors de la connexion. Si vous créez une clé sans mot de passe, vous n'aurez pas à la taper à chaque fois, cependant, toute personne ayant accès à votre fichier de clé peut désormais se connecter à votre compte github.
ssh-agent peut également fonctionner. Essayez de l'exécuter et voyez s'il se souviendra de votre phrase secrète.
la source
ssh-keygen -p
devrait permettre à l'OP de ne définir aucune phrase de passe[modifier - mal interpréter la question, c'est une réponse à un problème connexe. laissant la version reformulée pour la postérité]
Mon cas était que j'essayais de pousser vers un dépôt hébergé sur l'un de nos serveurs. Chaque fois que j'essayais de faire un push, git me demandait mon mot de passe (nb - password, pas la phrase de passe de ma clé privée).
En ajoutant ma clé publique aux clés autorisées sur le serveur, j'ai pu obtenir des push sans mot de passe vers ce serveur. Et, comme il n'y avait pas de mot de passe sur ma clé privée (ce qui est une mauvaise pratique d'ailleurs!), Je n'ai rien eu à taper du tout.
Voici la commande pour ajouter votre clé publique à un serveur. Il suppose que l'utilisateur
git
est l'utilisateur sur le serveur.Vous pouvez obtenir la même chose en vous connectant au serveur et en ajoutant manuellement votre clé publique au fichier à l'adresse
~/.ssh/authorized_keys
la source
Je me rends compte que cela se fait depuis plusieurs années, mais je suis tombé sur cette question en essayant de trouver une solution, et j'ai trouvé quelque chose qui convient à tous les niveaux d'expertise, alors j'ai pensé partager.
GitHub fournit un programme d'installation très utile qui rend tout agréable et facile: https://help.github.com/articles/caching-your-github-password-in-git/
la source
Supposons que vous souhaitiez utiliser une solution uniquement Git Bash sans utiliser TortoiseGit ou PuTTY. De plus, vous ne voulez pas stocker vos phrases de passe de manière permanente car c'est presque la même chose que si vous auriez généré votre clé SSH sans phrase de passe en premier lieu. Mais vous souhaitez toujours utiliser une certaine mise en cache.
À des fins de mise en cache, le
ssh-agent
processus est utilisé, qui est inclus avec la distribution Git Bash. Ce processus n'est pas démarré par défaut, il doit donc être lancé en premier. Pour toutes les clés SSH à mettre en cache, elles doivent être ajoutées à ce processus avec unessh-add
commande qui vous demandera la phrase de passe d'une clé et la stockera en mémoire.Inconvénients des autres solutions:
ssh-agent
comme dans l' article de GitHub demande une phrase secrète dès le début lorsque vous lancez Git Bash, que vous deviez utiliser votre clé SSH cette session ou non. Si vous travaillez avec votre dépôt local aujourd'hui, vous voudrez probablement fournir une phrase de passe uniquement lorsque cela est vraiment nécessaire (par exemple lors de l'interaction avec un dépôt distant).ssh-agent
comme dans GitLab aveceval $(ssh-agent -s)
vous êtes probablement fatigué de le taper à chaque fois. Il y a de fortes chances que vous ayez finalement ajouté ces deux lignes à votre.bashrc
configuration pour le lancement automatique. Les inconvénients sont les mêmes que ci-dessus plus un supplémentaire: chaque fois que vous lancez un nouveau terminal Git Bash, vous obtiendrez un processus ssh-agent supplémentaire (le script bash de GitHub vérifie si ce processus a déjà commencé).Cette solution est donc destinée à ceux qui se demandent comment faire en sorte que Git Bash ne demande une phrase de passe qu'une seule fois par session Windows et uniquement lorsque cela est vraiment nécessaire. Cela ressemble au comportement de la gestion des mots de passe avec GnuPG commits la signature automatique en utilisant
default-cache-ttl
.Configuration de SSH pour demander des phrases de passe une fois, si nécessaire, en utilisant uniquement Git Bash
Tout d'abord, nous voulons lancer automatiquement le
ssh-agent
lors du démarrage d'un shell Git Bash. Nous utiliserons un script de GitHub modifié pour cela car il vérifie si le processus a déjà commencé, mais nous ne voulons pas qu'il sessh-add
touche tout de suite. Ce script va à votre~/.bashrc
ou~/.profile
ou~/.bash_profile
(~
est le répertoire personnel de votre utilisateur commeC:\Users\Username
- exécutezcd ~
et ensuitepwd
pour que Git Bash l'imprime):Maintenant, éditez ou créez un
~/.ssh/config
fichier et ajoutez uneAddKeysToAgent
option pour chaque strophe d'hôte pour laquelle vous souhaitez activer la mise en cache (vous pouvez également l'activer globalement en plaçant la directive au début du fichier avant toutes les déclarations d'hôte):La durée de vie maximale par défaut est éternelle ou jusqu'à ce que le
ssh-agent
processus soit tué (manuellement à partir du gestionnaire de tâches ou lorsque votre PC est éteint). Si vous souhaitez utiliser un délai d'expiration fini, vous pouvez le définir avec le-t
paramètre ssh-agent . Modifiez la ligne dans le script bash à partir de la première étape ci-dessus, par exemple pour une durée de vie de 30 minutes du cache de clés:Voir ici pour d'autres qualificatifs de format d'heure.
la source
Vous pouvez créer un
.bashrc
fichier dans le répertoire personnel de votre utilisateur commeC:/Users/youruser
, et y mettre:Ce script s'exécute à chaque fois après l'exécution de bash. Vous n'aurez donc besoin de saisir le mot de passe qu'une seule fois, au
git-bash
démarrage!Certaines versions de bash nécessitent un
.bash_profile
fichier à la place.bashrc
, donc juste en cas de clonage.bashrc
:la source
peut essayer d'ajouter -k arg quand vous le faites;
la source