832 Stimmen

SSH-Schlüssel - Bittet immer noch nach Passwort und Passphrase

Ich habe Github immer wieder nach meinem Benutzernamen und Passwort gefragt, wenn ich ein Repository klone. Ich möchte diesen Schritt umgehen, weil er mich bei meiner Arbeit stört.

Ich habe versucht, einen SSH-Schlüssel einzurichten (was mir erfolgreich gelang) mithilfe dieses Leitfadens. https://help.github.com/articles/generating-ssh-keys und es hat funktioniert.

Mein Problem ist, dass ich immer noch nach meinem Github-Passwort und Passphrase gefragt werde, wenn ich ein Repository (mit SSH) klonen will. Mein Verständnis war, dass ich nach Einrichtung dieses SSH-Schlüssels das nicht mehr tun müsste.

Ich bin mir etwas unsicher, was ich fragen soll, also werde ich einfach mein Ziel nennen.

Ich möchte in der Lage sein, Repositories zu klonen, ohne jedes Mal meine Github-Informationen eingeben zu müssen.

Was fehlt mir bei meinem SSH-Schlüssel? Wenn jemand Anleitung oder Ressourcen anbieten kann, wäre ich dankbar, denn ich habe mich immer etwas verloren gefühlt, wenn es um die SSH-Authentifizierung in GitHub ging.

Nach meinem Wissen ist dies ein Befehl, der prüft, ob alles ordnungsgemäß funktioniert, hier ist die Ausgabe von meiner Konsole:

~ $ ssh -T git@github.com
Saving password to keychain failed
Enter passphrase for key '/Users/MYNAME/.ssh/id_rsa':
Hi MYNAME! You've successfully authenticated, but GitHub does not provide shell access.

Sollte mein Passwort zuerst fehlschlagen, wenn ich es eingebe? Dann, wenn ich mein Passphrase eingebe, erfolgt die Authentifizierung.

1169voto

Komu Punkte 12504

Identität ohne Schlüsselbund hinzufügen

Es gibt möglicherweise Zeiten, in denen Sie das Kennwort nicht im Schlüsselbund gespeichert haben möchten, aber auch nicht immer wieder das Kennwort eingeben möchten.

Sie können dies folgendermaßen tun:

ssh-add ~/.ssh/id_rsa 

Dies wird Sie nach dem Passwort fragen. Geben Sie es ein und es wird nicht erneut fragen, bis Sie neu starten.

Identität unter Verwendung des Schlüsselbunds hinzufügen

Wie @dennis in den Kommentaren erwähnt, um das Passwort durch Neustarts beizubehalten, indem es im Schlüsselbund gespeichert wird, können Sie die Option --apple-use-keychain (-k für Ubuntu) verwenden, wenn Sie die Identität hinzufügen, so wie hier:

ssh-add --apple-use-keychain ~/.ssh/id_rsa

Auch dieses Mal wird es Sie nach dem Passwort fragen. Geben Sie es ein und dieses Mal wird es nie wieder nach diesem Identität fragen.

419voto

Simon Boudrias Punkte 41491

Wenn Sie mit HTTPs -URLs arbeiten, wird immer nach Ihrem Benutzernamen / Kennwort gefragt. Dies könnte mit dem Kommentar von @Manavalan Gajapathy (hier kopiert) gelöst werden:

Lesen Sie dieses Github-Dokument zur Umwandlung der Remote-URL von https in ssh. Um zu überprüfen, ob die Remote-URL ssh oder https ist, verwenden Sie git remote -v. Um von https zu ssh zu wechseln:

git remote set-url origin git@github.com:USERNAME/REPOSITORY.git

Wenn Sie beim Klonen / Festlegen von Remotes korrekt SSH verwenden: Stellen Sie sicher, dass Sie einen ssh-agent haben, der Ihr Kennwort speichert (siehe diese Antwort von @Komu). Auf diese Weise geben Sie Ihr Passwort nur einmal pro Terminalsession ein.

Wenn es Ihnen trotzdem noch zu lästig ist, setzen Sie einfach einen ssh-Schlüssel ohne Passphrase.

300voto

Groot Punkte 13172

Auf Mac OSX können Sie Ihren privaten Schlüssel mit dem Befehl dem Schlüsselbund hinzufügen:

ssh-add -K /pfad/zum/privaten_schlüssel

Wenn sich Ihr privater Schlüssel im Verzeichnis ~/.ssh befindet und id_rsa heißt:

ssh-add -K ~/.ssh/id_rsa

Sie werden dann nach Ihrem Passwort gefragt, das im Schlüsselbund gespeichert wird.

Bearbeiten - Neustart behandeln

Um Ihr Passwort auch nach einem Neustart nicht erneut eingeben zu müssen, fügen Sie die folgenden Zeilen zu Ihrer SSH-Konfigurationsdatei hinzu (üblicherweise unter ~/.ssh/config zu finden)

Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa

206voto

ChrisJF Punkte 6472

Ich habe alle Antworten hier ausprobiert und keine dieser Antworten hat funktioniert! Mein Passwort wurde nicht zwischen Sitzungen/Neustarts meines Macs gespeichert.

Was ich aus dem Lesen von diesem OpenRadar und dieser Twitter-Diskussion herausgefunden habe, ist, dass Apple absichtlich das Verhalten für ssh-agent in macOS 10.12 Sierra geändert hat, um die vorherigen SSH-Schlüssel nicht mehr automatisch zu laden. Um das gleiche Verhalten wie bei El Capitan beizubehalten, habe ich Folgendes gemacht:

  1. ssh-add --apple-use-keychain ~/.ssh/id_rsa
  • Hinweis: Ändern Sie den Pfad, wo sich Ihr id_rsa-Schlüssel befindet. Außerdem war --apple-use-keychain zuvor -K.
  1. ssh-add --apple-load-keychain
  • Hinweis: --apple-load-keychain war früher -A.
  1. Erstellen Sie (oder bearbeiten Sie, falls vorhanden) die folgende ~/.ssh/config-Datei:

     Host *
       UseKeychain yes
       AddKeysToAgent yes
       IdentityFile ~/.ssh/id_rsa

Und jetzt wird mein Passwort zwischen Neustarts meines Macs gespeichert!

63voto

sudo bangbang Punkte 23220

Sie können die Passphrase für den Schlüssel entfernen

$ ssh-keygen -p [-P alte_passphrase] [-N neue_passphrase] [-f schlüsseldatei]

oder Sie können ausführen

$ ssh-keygen -p

Sie erhalten eine Aufforderung für die Schlüsseldatei. Standardmäßig ist es ~/.ssh/id_rsa, also drücken Sie Enter

Sie werden nach der aktuellen Passphrase gefragt, geben Sie diese ein.

Dann wird eine Aufforderung für eine neue Passphrase erscheinen, drücken Sie Enter

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