web-dev-qa-db-fra.com

Comment puis-je effectuer un "git pull" sans ressaisir mon mot de passe SSH?

Est-il possible de configurer git/ssh donc je n’ai pas besoin de saisir mon mot de passe chaque fois que je veux effectuer un git pull? Notez que le repo est privé sur github.

Ou bien, quelle serait la meilleure pratique pour automatiser le déploiement de code à partir d'un dépôt Github privé?

Détails supplémentaires: Instance EC2 exécutant une AMI publique basée sur Fedora.

82
jldupont

Jetez un coup d'œil à ce lien https://help.github.com/articles/working-with-ssh-key-passphrases/

Mais je ne veux pas entrer une phrase secrète longue à chaque fois que j'utilise la clé!

Moi non plus! Heureusement, il existe un astucieux petit outil appelé ssh-agent qui peut enregistrer votre phrase secrète en toute sécurité, de sorte que vous n’ayez pas à la saisir à nouveau. Si vous utilisez OSX Leopard ou une version ultérieure, vos clés peuvent être enregistrées dans le trousseau du système pour vous simplifier la vie. La plupart des installations Linux démarrent automatiquement ssh-agent pour vous lorsque vous vous connectez.

59
Fredrik Pihl

J'ai activé la mise en cache du mot de passe comme décrit ici:

https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux

Pour mettre en cache le mot de passe pendant un mois:

git config --global credential.helper 'cache --timeout=2628000'
22
Sileria

Votre situation est maintenant corrigée, mais pour moi c’était le fait que j’avais plus d’une clé dans ~/.ssh/

Pour résoudre le problème, je devais créer un fichier appelé ~/.ssh/config Et ajouter la ligne:

IdentityFile ~/.ssh/my_key2_rsa

~/.ssh/my_key2_rsa est ma clé.

8
user2098467

Essaye ça:

git config credential.helper store

Vous devrez entrer votre mot de passe une fois, après quoi il sera stocké dans un dossier situé dans la racine.

Comme indiqué dans les commentaires, cela ne fonctionne PAS pour les mots de passe SSH, uniquement pour les mots de passe HTTPS.

6
Yankee

Je ne sais pas pourquoi personne n'a encore signalé cela. Mais l’approche la plus simple consisterait simplement à ajouter une seule ligne AddKeysToAgent yes En haut du fichier .ssh/config. Ofcourse ssh-agent Doit être exécuté au préalable. Si ce n'est pas en cours d'exécution (vérifier par la commande ssh-agent Sur le terminal), alors exécutez-le simplement eval $(ssh-agent)

Je peux confirmer que cela fonctionne, car dans mon projet comportant de nombreux sous-modules et pour chaque sous-module en cours de clonage, je devais taper ma phrase secrète ssh. Après l'astuce ci-dessus, je n'ai plus besoin de le faire.

La source de la solution est https://askubuntu.com/questions/362280/enter-ssh-passphrase-once/853578#853578

3
infoclogged