795 Stimmen

Git fordert mich ständig zur Eingabe eines Passworts auf

Ich verwende Git jetzt schon eine Weile, aber die ständigen Anfragen nach einem Passwort machen mich langsam wahnsinnig.

Ich verwende Mac OS X und GitHub und habe Git und meine SSH-Schlüssel nach den Anweisungen von GitHub's Git-Seite einrichten .

Ich habe auch den SSH-Schlüssel von Github zu meinem Mac OS X-Schlüsselbund hinzugefügt, wie auf GitHub's SSH-Schlüssel-Passphrasen-Seite . Mein öffentlicher Schlüssel ist bei Git registriert.

Dennoch muss ich jedes Mal, wenn ich versuche, Git pull zu nutzen, meinen Benutzernamen und mein Passwort eingeben. Gibt es etwas anderes als einen SSH-Schlüssel, den ich dafür einrichten muss?

25voto

mithunpaul Punkte 2949

Achten Sie auch darauf, wer Sie nach der Passphrase fragt. Ist es Git oder Ihr SSH-Agent?

In meinem Fall war es jedes Mal so, dass ich git pull hat es mich gefragt:

Enter passphrase for key '/work/username/.ssh/id_rsa':

Ich nahm also an, dass Git nach einer Passphrase fragte. Also suchte ich weiter nach Lösungen, nur um später festzustellen, dass mein SSH-Agent heruntergefahren war. Das lässt sich beheben mit eval $(ssh-agent) y ssh-add wie angegeben hier.

Außerdem füge ich unten ein kleines Snippet ein, das Sie in Ihre ~/.bashrc (oder eine entsprechende Datei), um sicherzustellen, dass Ihr SSH-Agent bei Ihrer Anmeldung gestartet wird.

Auf jeden Fall war das ein ziemlich dummer Fehler, den ich gemacht habe, aber ich poste ihn hier, nur für den Fall, dass er jemandem hilft, Zeit zu sparen, weil er auf dem falschen Fuß erwischt wurde, wie ich es tat.

# 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

22voto

Lokesh S Punkte 406
git config credential.helper store

Hinweis: Dies ist zwar praktisch, aber Git speichert Ihre Anmeldedaten im Klartext in einer lokalen Datei (.git-credentials) unter Ihrem Projektverzeichnis (siehe unten für das "Home"-Verzeichnis). Wenn Ihnen das nicht gefällt, löschen Sie diese Datei und verwenden Sie die Cache-Option.

Wenn Sie möchten, dass Git Sie jedes Mal, wenn es sich mit dem entfernten Repository verbinden muss, wieder nach den Anmeldeinformationen fragt, können Sie diesen Befehl ausführen:

git config --unset credential.helper

Um die Kennwörter in .git-credentials in Ihrem %HOME%-Verzeichnis und nicht im Projektverzeichnis zu speichern, verwenden Sie die Option --global

git config --global credential.helper store

11voto

Ravi Kumar Punkte 642

Verwenden Sie den folgenden Befehl, um die Timeout-Periode zu erhöhen, so dass Sie das Kennwort eine Zeit lang erneut eingeben können

git config --global credential.helper 'cache --timeout 3600'

Ich habe es für Bitbucket und GitHub verwendet, es funktioniert für beide. Das einzige, was Sie tun müssen, ist 3600 ist in Sekunden. Erhöhen Sie den Wert so weit wie Sie wollen. Ich habe sie geändert in 259200 das sind etwa 30 Tage. Auf diese Weise gebe ich mein Passwort etwa alle 30 Tage neu ein.

11voto

Rohan Punkte 645

En Windows para Git 1.7.9+ Führen Sie den folgenden Befehl an der Eingabeaufforderung aus, um die Konfigurationsdatei in einem Texteditor zu öffnen:

git config --global --edit

Fügen Sie dann in der Datei den folgenden Block hinzu, falls er nicht vorhanden ist, oder bearbeiten Sie ihn entsprechend:

[credential "https://giturl.com"]
username = <user id>
helper = wincred

Speichern und schließen Sie die Datei. Sie müssen die Anmeldedaten nach der obigen Änderung nur einmal eingeben.

10voto

Francois Punkte 1545

Anleitung zu Git unter Windows und GitHub mit SSH zum Push/Pull: Eine illustrierte Anleitung zu Git unter Windows

  1. PuTTY herunterladen und installieren
  2. Umgebungsvariable 'GIT_SSH' = 'Pfad' setzen \to\plink.exe ' (im installierten putty-Ordner) - sehr wichtig !!!
  3. Windows Explorer neu starten damit die Umgebungsvariablen wirksam werden (kann nicht nur die Eingabeaufforderung neu starten)
  4. Führen Sie puttygen.exe aus, um einen neuen Schlüssel zu erzeugen, kopieren Sie die öffentlich Schlüssel zur GitHub-Website
  5. Speichern Sie diese neue privat Schlüssel an einem sicheren Ort auf der Festplatte (vorzugsweise nicht Dropbox )
  6. Führen Sie putty.exe aus und stellen Sie eine SSH-Verbindung zu github.co her.
  7. Rufen Sie den Startordner schnell auf, indem Sie "shell:startup" ausführen.
  8. Starten Sie Ihren privaten Schlüssel mit Windows über Pageant. Erstellen Sie eine Verknüpfung im Autostart-Ordner mit der Syntax "Pfad \to\pageant.exe " "Pfad \to\privatekey "
  9. Wir müssen die Einstellung "puttykeyfile" nicht in .git/config unserer Repositories setzen
  10. Sehr wichtig ist, dass die "SSH-Klon-URL" von GitHub verwendet wird und nicht HTTPS.

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