857 Stimmen

Git fragt mich ständig nach der Passphrase für meinen ssh-Schlüssel

Ich habe Schlüssel erstellt, wie im Github-Tutorial beschrieben, sie bei Github registriert und versucht, ssh-agent explizit zu verwenden - dennoch fragt mich Git jedes Mal nach meiner Passphrase, wenn ich versuche, einen Pull oder Push durchzuführen.

Was könnte die Ursache sein?

1601voto

Roberto Bonvallet Punkte 29281

Sobald Sie den SSH-Agenten mit gestartet haben:

eval $(ssh-agent)

Tun Sie beides:

  1. Um Ihren privaten Schlüssel hinzuzufügen:

     ssh-add

    Dabei werden Sie nur einmal nach Ihrer Passphrase gefragt, und dann sollte es Ihnen erlaubt sein, zu pushen, vorausgesetzt, Sie haben den öffentlichen Schlüssel auf Github hochgeladen.

  2. So fügen Sie Ihren Schlüssel hinzu und speichern ihn dauerhaft auf macOS :

     ssh-add -K  

    Dadurch bleibt sie auch nach dem Schließen und erneuten Öffnen erhalten, da sie im Schlüsselbund des Benutzers gespeichert wird.

    Wenn Sie eine Warnung sehen über deprecated Flaggen, versuchen Sie die neue Variante:

     ssh-add --apple-use-keychain 
  3. So fügen Sie Ihren Schlüssel hinzu und speichern ihn dauerhaft auf Ubuntu (oder gleichwertig):

      ssh-add ~/.ssh/id_rsa

356voto

Kyle Clegg Punkte 37388

Dieses Problem tritt bei mir nach Neustarts auf, seit ich von OS X El Capitan (10.11) auf macOS Sierra (10.12) aktualisiert habe. Die ssh-add Lösung funktionierte vorübergehend, blieb aber bei einem weiteren Neustart nicht bestehen.

Die dauerhafte Lösung bestand darin, Folgendes zu bearbeiten (oder zu erstellen) ~/.ssh/config und aktivieren Sie die UseKeychain Option.

Host *
    UseKeychain yes

Verwandt: macOS fragt ständig nach meiner ssh-Passphrase, seit ich auf Sierra aktualisiert habe

86voto

Darryl Young Punkte 2075

Wenn Sie schon einmal versucht haben ssh-add und Sie immer noch aufgefordert werden, Ihre Passphrase einzugeben, versuchen Sie es mit ssh-add -K . Dadurch wird Ihre Passphrase zu Ihrem Schlüsselbund hinzugefügt.

Update: Wenn Sie macOS Sierra verwenden, müssen Sie wahrscheinlich einen weiteren Schritt durchführen, da die obigen Schritte möglicherweise nicht mehr funktionieren. Fügen Sie Folgendes zu Ihrem ~/.ssh/config :

Host *
  UseKeychain yes

68voto

Roland Punkte 8783

Ich würde Folgendes versuchen:

  1. Start GitBash

  2. Bearbeiten Sie Ihr ~/.bashrc fichier

  3. Fügen Sie die folgenden Zeilen in die Datei ein

    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. Speichern und schließen Sie die Datei

  5. GitBash schließen

  6. GitBash wieder öffnen

  7. Geben Sie Ihre Passphrase ein

58voto

Arthur Punkte 1291

Was bei mir unter Windows funktionierte, war (ich hatte den Code aus einem Repo 1st geklont):

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

Daraufhin wurde ich ein letztes Mal nach meiner Passphrase gefragt

Credits: Die Lösung stammt aus https://unix.stackexchange.com/questions/12195/how-to-avoid-being-asked-passphrase-each-time-i-push-to-bitbucket

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X