Wie kann ich Yubikey/U2F-Anmeldeinformationen zwischenspeichern, wenn ich über SSH (speziell Git) authentifiziere?

Wie kann ich Yubikey/U2F-Anmeldeinformationen zwischenspeichern, wenn ich über SSH (speziell Git) authentifiziere?

Ich habe meineGitHub-Konto zur Verwendung von U2Fmit Yubikey (alles über SSH), aber da ich auch einGit-Bash-Eingabeaufforderung, daher werde ich jedes Mal, wenn ich mein Terminal verwende, aufgefordert, meinen Sicherheitsschlüssel zu berühren.

Ich verstehe die Beziehung zwischen den SSH-Anmeldeinformationen, dem Schlüssel und dem FIDO-U2F-Standard nicht ganz und bin mir daher nicht sicher, wie ich meine Umgebung einrichten muss, damit ich nicht bei jeder Verwendung meines Terminals zu einer Aufforderung aufgefordert werde.

Kann ich es so konfigurieren, dass es nur, sagen wir, einmal am Tag oder einmal pro Sitzung oder so gefragt wird?

Antwort1

Zunächst einmal ist U2Fnicht zwischenspeicherbar. Es ist nicht einfach ein Passwort; es ist ein Challenge/Response-Protokoll, bei dem das Token jedes Mal eine andere „Challenge“ erhält und digitale Signaturen ausgibt, ohneimmerindem es seine geheimen Schlüssel dem PC preisgibt (im Prinzip wie eine Smartcard). Darin liegt seine größte Stärke.

Dasselbe gilt für die klassischen Einmalpasswörter von Yubikey. Wie der Name schon sagt, sind sieeinmal, und der Server akzeptiert niemals dasselbe Passwort mehr als einmal und auch kein Passwort, das älter ist als ein bereits akzeptiertes.

Allerdings können Sie zwei Dinge tun:

  • Finden Sie zunächst heraus, was Sie nach den Anmeldeinformationen fragt, denn es ist definitivnichtSSH. Die U2F-UnterstützungPatcheswurde noch nicht in OpenSSH integriert und hat nie nach interaktiven Eingaben gefragt – es verwendet immer nur SSH-Schlüsselpaare, nicht Passwort+2fa.ssh [email protected]

    Wenn Sie tatsächlich über HTTPS und nicht über SSH pushen, gibt es meines Wissens nach immer noch keine U2F-Integration in der HTTP-Authentifizierung, sodass Sie höchstens nach dem 6-stelligen Code gefragt werden.

    Wenn Sie einen Yubikey in voller Größe haben, prüfen Sie, ob sein Licht bei der entsprechenden Aufforderung blinkt. Es blinkt nur, wenn auf die U2F-Bestätigung gewartet wird – wenn es konstant leuchtet, wird stattdessen ein klassisches Einmalpasswort gesendet. Und wenn Sie könnensehender Yubikey, der ein langes Passwort eingibt, das ist nicht U2F.

  • Zweitens für SSHIm Algemeinenkönnen Sie die Verbindungscaching-/Multiplexing-Funktion von OpenSSH aktivieren. Nachdem Sie sich bei einem Server angemeldet haben, hält OpenSSH diese Verbindung mehrere Minuten lang aufrecht, auch nachdem Sie die Remote-Shell geschlossen haben (also auch nachdem Git seine Übertragungen abgeschlossen hat).

    Geben Sie dazu Folgendes in Ihr ein ~/.ssh/config:

    Host *
        ControlMaster auto
        ControlPath ~/.ssh/S.%r@%h:%p
        ControlPersist 5m
    

    (Ältere OpenSSH-Versionen unterstützen ControlPersist nicht, Sie können also die anderen beiden Optionen beibehalten, müssen die Verbindung jedoch manuell mit starten .)ssh -fNM [email protected]

verwandte Informationen