3 Authentifizierung
frank edited this page 2026-07-16 08:09:05 +02:00
This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Authentifizierung

forge auth verwaltet Anmeldung und Zugangsdaten für Forgejo.

Befehle

  • login mit OAuth2, Token oder Benutzername und Passwort anmelden
  • logout gespeicherte Zugangsdaten entfernen
  • refresh OAuth-Zugangsdaten erneuern
  • setup-git Git-Credential-Helper für den Host setzen
  • status Anmeldestatus anzeigen
  • switch aktiven Forgejo-Host wechseln
  • token gespeicherten Access-Token ausgeben
forge auth --help
forge auth login --help
forge auth status

forge config list zeigt Standardziel und Benutzer. Mit --host kann ein anderes Ziel gewählt werden.

Login-Varianten

OAuth2 (Browser)

Öffentliche OAuth2-App in Forgejo anlegen (Settings → Applications) mit Loopback-Redirect, z.B. http://127.0.0.1/.

forge auth login --server https://forge.example.com --client-id YOUR_CLIENT_ID

Personal Access Token (stdin)

printf '%s' "$FORGE_TOKEN" | forge auth login --server https://forge.example.com --with-token

Benutzername und Passwort

Passwort wird sicher abgefragt; forge legt einen Access-Token an (Scope all). Bei 2FA folgt eine OTP-Abfrage.

forge auth login --server https://forge.example.com --username alice

Standard-Tokenname ist forge-cli (--token-name). Existiert der Name bereits auf dem Server, wählt forge automatisch einen neuen Namen (forge-cli-<host>-<nano>-<rand>) und wiederholt das bis zu achtmal.

Credential-Speicherung

Backend Wann
OS-Keychain / Secret Service Standard, wenn verfügbar (macOS Keychain, Windows Credential Manager, Linux org.freedesktop.secrets)
Datei credentials.json Automatischer Fallback, wenn der Keyring fehlt oder fehlschlägt; oder erzwungen per Env
  • Linux-Pfad: ~/.config/forge/credentials.json (über os.UserConfigDir())
  • Verzeichnis 0700, Datei 0600
  • Nur Datei erzwingen (typisch Headless-Server ohne D-Bus/X11):
export FORGE_CREDENTIAL_STORE=file
forge auth login --server https://forge.example.com --username alice

Beim Fallback erscheint einmalig auf stderr:

warning: credentials stored in …/credentials.json; OS keyring unavailable

Host-Metadaten (ohne Secrets) liegen in config.json im selben Verzeichnis.

Headless-Beispiel

Ohne GNOME Keyring, X11 oder D-Bus Secret Service:

export FORGE_CREDENTIAL_STORE=file
forge auth login --username forgeagent --server https://repository.example.com
forge auth status