823 votes

Git continue de me demander la phrase de passe de ma clé ssh

J'ai créé des clés comme indiqué dans le tutoriel de github, je les ai enregistrées auprès de github et j'ai essayé d'utiliser explicitement ssh-agent. Pourtant, git continue de me demander ma phrase de passe à chaque fois que j'essaie de faire un pull ou un push.

Quelle pourrait en être la cause ?

0 votes

1555voto

Roberto Bonvallet Points 6336

Une fois que vous avez démarré l'agent SSH avec :

eval $(ssh-agent)

Faites l'un ou l'autre :

  1. Pour y ajouter votre clé privée :

     ssh-add

    Cette opération vous demandera votre phrase de passe une seule fois, puis vous devriez être autorisé à pousser, à condition que vous ayez téléchargé la clé publique sur Github.

  2. Pour ajouter et enregistrer votre clé de façon permanente sur macOS :

     ssh-add -K  

    Cela le fera persister après que vous l'ayez fermé et rouvert en le stockant dans le trousseau de clés de l'utilisateur.

  3. Pour ajouter et sauvegarder votre clé de façon permanente sur Ubuntu (ou équivalent) :

      ssh-add ~/.ssh/id_rsa

34 votes

Se déconnecter du serveur, se reconnecter par ssh, exécuter git pull et me demander le mot de passe à nouveau.

1 votes

Ça n'a pas marché pour moi. La phrase de passe est toujours demandée lorsque je ferme Gitbash et que je l'ouvre à nouveau.

2 votes

@OmarTariq Si vous fermez votre session git-bash, vous perdez l'instance de ssh-agent. Certains environnements de bureau lancent un agent global afin que les clés ajoutées soient partagées entre les sessions de terminal, mais cela est spécifique à l'OS que vous utilisez.

343voto

Kyle Clegg Points 8441

Cela m'arrive après des redémarrages depuis la mise à niveau d'OS X El Capitan (10.11) vers macOS Sierra (10.12). Le site ssh-add Cette solution a fonctionné temporairement mais n'a pas persisté lors d'un autre redémarrage.

La solution permanente était de modifier (ou de créer) ~/.ssh/config et activer le UseKeychain option.

Host *
    UseKeychain yes

En rapport : macOS continue de me demander ma phrase de passe ssh depuis la mise à jour de Sierra

81voto

Darryl Young Points 113

Si vous avez essayé ssh-add et qu'il vous est toujours demandé d'entrer votre phrase de passe, essayez alors d'utiliser ssh-add -K . Cela ajoute votre phrase de passe à votre trousseau de clés.

Mise à jour : si vous utilisez macOS Sierra, vous devrez probablement effectuer une autre étape, car l'étape précédente pourrait ne plus fonctionner. Ajoutez ce qui suit à votre ~/.ssh/config :

Host *
  UseKeychain yes

68voto

rolandjitsu Points 775

J'essaierais ce qui suit :

  1. Début GitBash

  2. Edita tu ~/.bashrc fichier

  3. Ajoutez les lignes suivantes au fichier

    SSH_ENV=$HOME/.ssh/environment

    start the ssh-agent

    function start_agent { echo "Initializing new SSH agent..."

    spawn ssh-agent

    /usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV}
    echo succeeded
    chmod 600 ${SSH_ENV}
    . ${SSH_ENV} > /dev/null
    /usr/bin/ssh-add

    }

    if [ -f "${SSH_ENV}" ]; then . ${SSH_ENV} > /dev/null ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || { start_agent; } else start_agent; fi

  4. Sauvegarder et fermer le fichier

  5. Fermer GitBash

  6. Rouvrir GitBash

  7. Entrez votre phrase d'authentification

6 votes

Pour mémoire, cela fonctionne également avec zsh . Il suffit d'ajouter ceci à .zshrc

3 votes

Je crois que cela suppose que votre fichier clé s'appelle id_rsa . Si vous avez un nom personnalisé, vous devez utiliser par exemple . /usr/bin/ssh-add ~/.ssh/custom_filename

2 votes

Pouvez-vous expliquer ce qui est arrivé à ce script ?

56voto

Arthur Points 84

Ce qui a fonctionné pour moi sur Windows était (j'avais cloné le code à partir d'un repo 1er) :

eval $(ssh-agent)
ssh-add 
git pull 

et il m'a demandé une dernière fois ma phrase de passe.

Crédits : la solution a été prise de https://unix.stackexchange.com/questions/12195/how-to-avoid-being-asked-passphrase-each-time-i-push-to-bitbucket

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