Warum werde ich gebeten zu bestätigen, dass ich es bin, wenn ich mich mit Git Credential Manager, tea oder der CLI anmelde?
Wenn eine App wie Git Credential Manager deinen Browser öffnet, um dich bei frem.sh anzumelden, zeigt frem.sh womöglich zuerst die Seite Bestätige, dass du es bist. Bestätige mit deinem Passkey oder Sicherheitsschlüssel, mit einem Code aus deiner Authenticator-App oder indem du dich erneut beim Identitätsanbieter deiner Organisation anmeldest. Danach kehrt der Browser direkt zurück und schließt die Anmeldung ab. Einen zweiten Klick, um die App zuzulassen, gibt es nicht.
Du wirst etwa einmal im Monat auf jedem Gerät gefragt, wenn sich eine App neu anmeldet. Eine App, die ihre Anmeldung im Hintergrund erneuert, wird nie gefragt.
Was passiert
- Eine App auf deinem Computer öffnet deinen Browser bei frem.sh, um dich anzumelden, zum Beispiel bei deinem ersten
git pushmit Git Credential Manager oder wenn dufremforge auth loginausführst. - Hast du in den letzten 5 Minuten nicht bestätigt, dass du es bist, zeigt frem.sh Bestätige, dass du es bist. Die Seite nennt die App und sagt, wo sie läuft (bei einer App, die nicht auf deinem eigenen Computer läuft, „Sie läuft auf“ und den Host). Sie zeigt „Fahre nur fort, wenn du diese Anmeldung selbst gestartet hast.“ und verlinkt auf diese Seite („Warum werde ich gefragt?“).
- Du bestätigst (siehe So bestätigst du).
- Der Browser kehrt zur App zurück, und die Anmeldung wird abgeschlossen. Du klickst nicht ein zweites Mal auf Authorize.
Eine Bestätigung gilt höchstens 5 Minuten und wird von dieser einen Anmeldung verbraucht. Meldet sich eine Minute später eine zweite App neu an, bestätigst du erneut.
Ist das die App, die ich gestartet habe?
frem.sh nennt eine App nur dann schlicht beim Namen, wenn es ihr anhand ihrer Client-ID vertraut: Git Credential Manager, git-credential-oauth und tea (in Forgejo eingebaut) sowie die fremforge-CLI und der MCP-Connector von fremforge. Jede andere App wird mit ihrem Namen in Anführungszeichen und mit ihrem Eigentümer angezeigt, zum Beispiel:
„Example App“, registriert von example-owner, möchte sich bei deinem Konto anmelden. Bestätige, dass du es bist, um fortzufahren.
Steht der Name in Anführungszeichen mit „registriert von“, ist es eine Drittanbieter-App. Prüfe, dass du diese Anmeldung selbst aus dieser App gestartet hast. Wenn nicht, fahre nicht fort: Schließe die Seite. Möglicherweise versucht jemand, über eine selbst registrierte App ein Token für dein Konto zu bekommen. Informiere die Administration deiner Organisation oder security@frem.sh.
Warum frem.sh fragt
Diese Apps melden sich ohne Client-Secret an. Ein Programm, das auf Millionen von Laptops installiert ist, kann kein Geheimnis bewahren, deshalb nennt der OAuth-Standard es einen öffentlichen Client. Das hat eine Folge: frem.sh kann den echten Git Credential Manager nicht von irgendeinem anderen Programm auf einem Computer unterscheiden, das behauptet, er zu sein.
Hätte also jemand deine Browsersitzung gestohlen (ein Sitzungscookie, zum Beispiel über Schadsoftware oder einen gemeinsam genutzten Computer), könnte er ein kleines eigenes Programm ausführen, sich als Git Credential Manager oder fremforge-CLI ausgeben und ein Token für dein Konto bekommen, ohne je dein Passwort oder deinen zweiten Faktor zu kennen.
Die Bestätigung schließt diese Lücke. Eine gestohlene Sitzung allein bringt kein Token mehr: Die Person muss mit ihrem Passkey, Sicherheitsschlüssel, ihrer Authenticator-App, ihrem Passwort oder ihrem Identitätsanbieter anwesend sein. Das ist dieselbe Idee wie GitHubs „sudo mode“, der vor sensiblen Aktionen eine erneute Authentifizierung verlangt.
Welche Apps
Jede App, die sich ohne Client-Secret bei frem.sh anmeldet, darunter:
- Git Credential Manager (GCM), eingerichtet wie in Sichere Anmeldung
- git-credential-oauth
- tea, der Kommandozeilen-Client für Forgejo und Gitea
- die fremforge-CLI:
fremforge auth login, sowohl die Anmeldung im Browser (Loopback) als auch die Anmeldung per Gerätecode. Siehe Authentifizierung der CLI. - Connectors von KI-Assistenten, die sich in deinem Namen bei frem.sh anmelden, siehe MCP
- jede OAuth-App eines Drittanbieters, die als öffentlicher Client registriert ist
Apps mit Client-Secret bleiben unverändert. Eine OAuth-App, die auf einem Server läuft und sich mit einem Client-Secret authentifiziert (ein vertraulicher Client), meldet dich wie bisher an, mit dem üblichen Zustimmungsbildschirm.
Wie oft
Etwa einmal im Monat auf jedem Gerät. Du bestätigst, wenn sich eine App neu anmeldet, nicht jedes Mal, wenn du git benutzt:
- Eine App, die ihre Anmeldung im Hintergrund erneuert, wird nie gefragt. Das Zugriffstoken von Git Credential Manager gilt 24 Stunden, sein Refresh-Token 30 Tage. Innerhalb dieser 30 Tage erneuert GCM das Token bei deinem nächsten Push oder Fetch ohne Rückfrage.
- Die 1-Stunden-Token der fremforge-CLI werden auf dieselbe Weise ohne Rückfrage erneuert.
- Eine Anmeldung, die eine App bereits hat, löst nie eine Frage aus. Pushes, Fetches sowie Aufrufe der CLI und von Connectors mit einer bestehenden Anmeldung laufen wie bisher durch.
Du wirst gefragt, wenn eine App den Browser öffnet, um sich neu anzumelden. Das passiert:
- bei der ersten Anmeldung auf einem neuen Gerät, zum Beispiel einem neuen Laptop oder einer neuen WSL-Installation
- nachdem du dich abgemeldet hast oder nachdem du den Zugriff der App unter Autorisierte OAuth2-Anwendungen auf
frem.sh/user/settings/applicationsentfernt hast - nach 30 Tagen ohne Nutzung, wenn das Refresh-Token abgelaufen ist
So bestätigst du
| Du hast | Du bestätigst mit |
|---|---|
| Einen Passkey oder Sicherheitsschlüssel | Passkey oder Sicherheitsschlüssel verwenden. Synchronisierte Passkeys (zum Beispiel im iCloud-Schlüsselbund, im Google Passwortmanager oder in einem Passwortmanager) funktionieren ebenfalls. |
| Eine Authenticator-App (TOTP) | Einem 6-stelligen Code aus der App. Hast du auch einen Passkey, steht das Codefeld unter der Passkey-Schaltfläche. |
| Ein Passwort, aber noch keinen zweiten Faktor | Deinem Passwort für frem.sh |
| Single Sign-on über deine Organisation | Einem Klick: Erneut mit … anmelden, mit dem Namen deines Identitätsanbieters. Hast du auch einen Passkey oder eine Authenticator-App, ist das ein Link darunter. |
Single Sign-on: ein Klick, eine frische Anmeldung. frem.sh bittet deinen Identitätsanbieter um eine frische Anmeldung und zählt sie nur, wenn der Anbieter dich tatsächlich gerade eben angemeldet hat: Das kann niemand, der eine gestohlene frem.sh-Sitzung besitzt. Für Git Credential Manager, tea oder die CLI brauchst du auf frem.sh weder einen Passkey noch einen zweiten Faktor. Verlangt deine Organisation beim Identitätsanbieter einen zweiten Faktor, schließt du ihn dort wie gewohnt ab.
Brichst du beim Identitätsanbieter ab oder hat er dich nicht erneut anmelden lassen (er hat eine frühere Anmeldung wiederverwendet), kommst du zurück zur Seite Bestätige, dass du es bist, die das anzeigt und dich es erneut versuchen lässt.
Mit einem Passwort, aber ohne zweiten Faktor, zeigt die Seite außerdem: „Richte die Zwei-Faktor-Authentifizierung ein, damit du nächstes Mal mit einem Code oder einem Sicherheitsschlüssel bestätigen kannst.“ Nur mit Single Sign-on zeigt sie: „Passkey einrichten oder einen anderen zweiten Faktor, damit du hier beim nächsten Mal bestätigen kannst.“ Das ist freiwillig: Die erneute Anmeldung bei deinem Identitätsanbieter genügt.
Du hast 5 Versuche in 15 Minuten. Danach bittet dich die Seite, es in 15 Minuten erneut zu versuchen.
Ich habe keinen zweiten Faktor
- Du hast ein Passwort für frem.sh: Bestätige mit deinem Passwort. Richte danach einen Passkey oder die Zwei-Faktor-Authentifizierung ein, damit du beim nächsten Mal damit bestätigst. Bis du einmal damit bestätigt hast, bietet die Seite dein Passwort weiterhin neben dem neuen Faktor an.
- Du meldest dich nur über das Single Sign-on deiner Organisation an: Klicke auf Erneut mit … anmelden für deinen Identitätsanbieter. Mehr ist nicht nötig.
- Du hast nichts davon: Die Seite bittet dich, dich an die Administration deiner Organisation oder an support@frem.sh zu wenden. Wir helfen dir, einen zweiten Faktor einzurichten.
Fehlerbehebung
- Die Anmeldung ist nach meiner Bestätigung fehlgeschlagen. Die Bestätigung wird von einer Anmeldung verbraucht und gilt 5 Minuten. Ist die App zwischendurch in ein Timeout gelaufen, führe den Befehl erneut aus (zum Beispiel
git fetch) und bestätige noch einmal. - „… hat dich nicht erneut anmelden lassen, daher konnte nicht bestätigt werden, dass du es bist.“ Dein Identitätsanbieter hat eine frühere Anmeldung wiederverwendet, statt dich erneut zu fragen. Versuche es noch einmal. Passiert das immer wieder, informiere deine Administration: Der Anbieter ignoriert die Bitte von frem.sh um eine frische Anmeldung.
- „Deine Organisation verlangt bei … einen zweiten Faktor, und es wurde keiner bestätigt.“ Der Identitätsanbieter deiner Organisation ist so eingestellt, dass er einen zweiten Faktor verlangt, hat aber keinen gemeldet. Melde dich erneut an und schließe dort den Schritt mit dem zweiten Faktor ab.
- „Du hast diesen Passkey oder Code in dieser Sitzung eingerichtet, daher kann er die Anmeldung einer App hier nicht bestätigen.“ Ein Faktor, den du gerade hinzugefügt hast, kann die Anmeldung einer App erst bestätigen, wenn du einmal auf andere Weise bestätigt hast, dass du es bist. So kann niemand mit einer gestohlenen Sitzung einen Passkey hinzufügen und ihn verwenden. Warten musst du nicht: Verwende einmal einen Faktor, den du schon vorher hattest, dein Passwort oder Erneut mit … anmelden für deinen Identitätsanbieter. Danach funktioniert der neue Passkey wie gewohnt, auf jedem Gerät.
- Ich werde jeden Tag gefragt. Prüfe, ob Git Credential Manager sein Token speichern kann: Siehe die Einstellung
credential.credentialStorein Schritt 4 von Sichere Anmeldung. Ohne funktionierenden Speicher hat GCM kein Refresh-Token zum Wiederverwenden und meldet sich jedes Mal neu an. - Ein Skript oder CI-Job funktioniert nicht mehr. Unbeaufsichtigte Jobs sollten keine interaktive Anmeldung verwenden. Nutze ein persönliches Zugriffstoken oder Forgejo Actions OIDC; beide sind nicht betroffen.