Je viens de commencer à utiliser Git et je ne parviens pas à me rappeler mon mot de passe composé. J'utilise cmd.exe élevé et mon hôte Git est github et j'ai créé une clé ssh comme celle sur github.
mais j'obtiens toujours
*\subnus.mvc>git Push Origin master
Enter passphrase for key '/c/Users/Subnus/.ssh/id_rsa':
Je me rends compte que cette question approche de deux ans, mais j'avais le même problème et plusieurs réponses ici ne m'ont pas complètement répondu à la question. Voici deux solutions pas à pas, selon que vous utilisiez TortoiseGit en plus de msysgit ou non.
Première solution En supposant que Windows, msysgit et PuTTY.
Accédez à la boîte de dialogue des variables d'environnement de Windows (cliquez avec le bouton droit de la souris sur "Ordinateur", cliquez sur "Propriétés", cliquez sur "Paramètres système avancés" ou sur l'onglet "Avancé", puis sur "Variables d'environnement"). Ajoutez la variable d'environnement suivante:
GIT_SSH = C:\full\path\to\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 à celui 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 d'une installation et de pageant.exe 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 que Github) Vous devriez être informé que la clé de l'hôte du serveur n'est pas mis en cache, et vous demander si vous lui faites confiance. Répondez avec 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 à 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.)
Deuxième solution En supposant que Windows, msysgit et TortoiseGit.
TortoiseGit est fourni avec les 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 (cliquez avec le bouton droit de la souris sur "Ordinateur", cliquez sur "Propriétés", cliquez sur "Paramètres système avancés" ou sur l'onglet "Avancé", puis sur "Variables d'environnement"). Ajoutez la variable d'environnement suivante:
GIT_SSH = C:\full\path\to\TortoisePlink.exe
Remplacez "C:\full\path\to" par le chemin d'installation complet de TortoiseGit, où se trouve TortoisePlink.exe. 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 à celui 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 autonome de PuTTY) risque de vous poser problème.
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é du fait que la clé d'hôte du serveur n'est pas mise en cache et vous demande si vous faites confiance au serveur. Cliquez sur "Oui". (Ceci est TortoisePlink.exe en action.)
Vous voudrez peut-être avoir pageant.exe chargez votre fichier .ppk automatiquement au démarrage , selon la fréquence à laquelle vous en aurez besoin.
Troisième solution Assume Window, msysgit et l'invite de commande native.
start-ssh-agent
Pour tous ceux qui ont besoin d’instructions plus détaillées, voir cette page: http://help.github.com/working-with-key-passphrases/
Si vous utilisez Git bash sous Windows vous pouvez effectuer les opérations suivantes:
eval `ssh-agent -s`
ssh-add ~/.ssh/*_rsa
il demandera une phrase de passe dans la deuxième commande, et c'est tout. Chaque action supplémentaire que vous devrez effectuer (qui, une fois la phrase secrète requise) ne vous demandera pas la phrase secrète (voir un exemple dans la capture d'écran ci-dessous):
J'espère que ça aide.
À votre santé,
Gars.
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 allez-y.
REMARQUE: Supposons que vous utilisez un ordinateur Windows.
PATH
, cela devrait fonctionner. Si vous ne le faites pas, lancez git-credential-winstore -i C:\Path\To\Git.exe
.Lors de votre prochaine tentative de validation dans un référentiel, vous serez invité à saisir vos informations d'identification. Cela devrait être ça. Vos informations d'identification ne vous seront plus demandées jusqu'à ce que vous changiez votre mot de passe.
Juste pour votre connaissance ... Vos informations d'identification sont stockées dans le Credential Store de Windows.
Où stockez-vous mes identifiants?
Cette application utilise simplement la banque d'informations d'identification Windows existante pour stocker vos informations d'identification. Vous pouvez voir les informations d'identification stockées en allant dans Panneau de configuration> Comptes d'utilisateurs> Gestionnaire des informations d'identification, puis en choisissant "Informations d'identification Windows". Les entrées commençant par "git:" proviennent de git-credential-winstore.
Ce n'est pas git, c'est SSH.
Je ne fais pas de Windows, mais SSH a un concept d'agent qui peut se rappeler des mots de passe pour vous. OS X l’a activé par défaut. Votre client ssh a probablement un moyen de le configurer.
Si vous définissez un mot de passe pour votre fichier de clé, vous devrez toujours saisir ce mot de passe lors de la connexion. Si vous créez une clé sans mot de passe, vous n'aurez pas à la saisir à chaque fois. Cependant, toute personne ayant accès à votre fichier de clé peut désormais se connecter à votre compte github.
ssh-agent peut aussi fonctionner. Essayez d’exécuter cela et voyez s’il se souviendra de votre phrase secrète.
[modifier - mal interprété la question, il s'agit d'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 qui était 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 - mot de passe, pas la phrase secrète de ma clé privée).
En ajoutant ma clé publique aux clés autorisées sur le serveur, j'ai pu obtenir des envois sans mot de passe sur ce serveur. Et, parce qu'il n'y avait pas de mot de passe sur ma clé privée (ce qui est une mauvaise pratique d'ailleurs!), Je n'avais pas besoin de taper quoi que ce soit.
Voici la commande pour ajouter votre clé publique à un serveur. Il suppose que l'utilisateur git
est l'utilisateur sur le serveur.
cat .ssh/id_rsa.pub | ssh git@GIT_MASTER_IP 'cat >> .ssh/authorized_keys'
Vous pouvez obtenir le même résultat en vous connectant au serveur et en ajoutant manuellement votre clé publique au fichier à l'adresse ~/.ssh/authorized_keys
Je me rends compte que cela fait déjà 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 simple: https://help.github.com/articles/caching-your-github-password-in-git/
Il existe une solution beaucoup plus simple à ce problème si le fait de stocker votre mot de passe en texte brut et que vous utilisez TortoiseGit ne vous gêne pas.
Créez simplement un _netrc
fichier dans votre répertoire de profil utilisateur - c’est-à-dire que sous Windows 7, il s’agit de C:\Users\MyName\_netrc
. Ce fichier stockera vos informations de connexion dans ce format:
machine bitbucket.org login thisismyname password p455w0rD
machine bitbucket.org login another_account password pwdpwdPWd
machine github.com login thisismynameagain password p455w0rD
J'utilise TortoisePLink en tant que client SSH et cela fonctionne parfaitement.
Vous pouvez créer un .bashrc
fichier dans le répertoire personnel de votre utilisateur comme C:/Users/youruser
, et y mettre:
env=~/.ssh/agent.env
agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }
agent_start () {
(umask 077; ssh-agent >| "$env")
. "$env" >| /dev/null ; }
agent_load_env
# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)
if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
agent_start
ssh-add
Elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
ssh-add
fi
unset env
Ce script s'exécute chaque fois après l'exécution de bash. Il vous faudra donc entrer le mot de passe une seule fois, lorsque git-bash
a démarré!
Certaines versions de bash nécessitent .bash_profile
fichier à la place .bashrc
, donc juste au cas où clone .bashrc
:
copy .bashrc .bash_profile
peut essayer d'ajouter -k arg quand vous le faites;
ssh-add -k ~/.ssh/id_rsa