Zum Hauptinhalt springen

Mit fremforge verbinden

Die meisten fremforge-Organisationen erlauben standardmäßig nur Git über HTTPS (SSH ist seit dem 22.05.2026 auf Ebene der Organisationsrichtlinie deaktiviert) – die empfohlene Einrichtung mit HTTPS und Git Credential Manager beschreibt die Anleitung zur sicheren Anmeldung. Die folgende Seite gilt, wenn der Admin deiner Organisation SSH unter <your-org>/_admin/auth-policy/ ausdrücklich wieder aktiviert hat. Den SSH-Weg gibt es weiterhin; er ist nur nicht mehr der Standard.

Bevor du Code pushst oder Repositorys über SSH abrufst, bittet dich dein SSH-Client, die Identität des Servers zu bestätigen. Die folgenden Abschnitte erklären, was du prüfen solltest und wie du SSH für Netzwerke einrichtest, die Port 22 blockieren.

Einen SSH-Schlüssel hinzufügen

Erzeuge einen Schlüssel auf deinem eigenen Rechner und gib fremforge seinen öffentlichen Teil:

ssh-keygen -t ed25519 -C "you@example.com"
cat ~/.ssh/id_ed25519.pub

Füge die Zeile, die mit ssh-ed25519 beginnt, unter Einstellungen → SSH- / GPG-Schlüssel ein und wähle Schlüssel hinzufügen. Hat deine Organisation SSH ausgeschaltet, wird Git über SSH abgelehnt, egal welchen Schlüssel du hinzufügst; nutze dann stattdessen HTTPS mit einem Git-Zugriffstoken.

Den Host-Schlüssel prüfen

Bei der ersten Verbindung bittet dich dein SSH-Client, den Fingerabdruck des Host-Schlüssels zu bestätigen. Prüfe vor dem Bestätigen, ob der Fingerabdruck mit den Werten übereinstimmt, die unter frem.sh/ssh-fingerprints veröffentlicht sind.

Akzeptiere keinen Fingerabdruck, der nicht auf dieser Seite steht.

Ablauf der Prüfung bei der ersten Verbindung

Port 22 ist nicht erreichbar. fremforge stellt SSH auf Port 443 über den Hostnamen ssh.frem.sh bereit. Unten findest du das Host-Alias-Snippet – die maßgebliche, einmalige ~/.ssh/config-Konfiguration, mit der du in deinen Git-Remotes weiterhin git@frem.sh schreiben kannst.

  1. Führe den Authentifizierungstest aus (funktioniert ohne jede Änderung an ~/.ssh/config):
ssh -T -p 443 git@ssh.frem.sh
  1. Dein Terminal zeigt eine Ausgabe wie diese:
The authenticity of host '[ssh.frem.sh]:443 ([203.0.113.10]:443)' can't be established.
ED25519 key fingerprint is SHA256:AAAA....
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
  1. Vergleiche den angezeigten Fingerabdruck mit den veröffentlichten Werten unter https://www.frem.sh/ssh-fingerprints/. Stimmen sie überein, tippe yes.

  2. SSH schreibt den akzeptierten Schlüssel in ~/.ssh/known_hosts. Bei allen weiteren Verbindungen prüft SSH ihn stillschweigend. Weitere Abfragen gibt es nur, wenn sich der Schlüssel ändert.

  3. Bei Erfolg siehst du:

Hi <username>! You've successfully authenticated, but fremforge does not provide shell access.

Siehst du stattdessen Permission denied (publickey), ist dein Schlüssel entweder nicht zu deinem Konto hinzugefügt, oder es wird der falsche Schlüssel angeboten. Zur Einrichtung von Schlüsseln siehe Erste Schritte.

known_hosts von Hand prüfen

So siehst du, welchen Schlüssel SSH für ssh.frem.sh gespeichert hat:

ssh-keygen -F '[ssh.frem.sh]:443'

So entfernst du einen gespeicherten Schlüssel (zum Beispiel, wenn der Serverschlüssel rechtmäßig rotiert wurde und du darüber informiert wurdest):

ssh-keygen -R '[ssh.frem.sh]:443'

Verbinde dich dann erneut und prüfe den neuen Fingerabdruck anhand von https://www.frem.sh/ssh-fingerprints/, bevor du ihn akzeptierst.

SSH auf Port 443 (erforderlich, Port 22 ist nicht erreichbar)

fremforge stellt Port 22 auf frem.sh nicht bereit. SSH läuft auf Port 443 über den Hostnamen ssh.frem.sh – dasselbe SSH-Protokoll auf einem Port, den Firewalls für HTTPS üblicherweise offen lassen. Das ist der einzige SSH-Weg, kein Ausweichweg.

Richte deinen SSH-Client so ein, dass er diesen Weg nutzt, wann immer du frem.sh in einem Git-Remote schreibst:

# ~/.ssh/config
Host frem.sh
    Hostname ssh.frem.sh
    Port 443

Damit nutzen git clone git@frem.sh:<org>/<repo>.git und alle anderen Git-Operationen auf frem.sh automatisch Port 443. Die Remote-URLs musst du nicht ändern.

Teste die Verbindung direkt, bevor du dich darauf verlässt:

ssh -T -p 443 git@ssh.frem.sh
# Hi <username>! You've successfully authenticated, but fremforge does not provide shell access.

Auf Port 443 gelten dieselben Fingerabdrücke der Host-Schlüssel. Prüfe sie bei der ersten Nutzung anhand von https://www.frem.sh/ssh-fingerprints/.

HTTPS mit einem Git-Zugriffstoken

Steht SSH überhaupt nicht zur Verfügung, klone und pushe über HTTPS:

git clone https://frem.sh/<org>/<repo>.git

Git fragt nach Benutzername und Passwort. Dein Kontopasswort funktioniert hier nicht: Gib deinen fremforge-Benutzernamen ein und als Passwort ein Git-Zugriffstoken. Antwortet Git mit “Credentials are incorrect or have expired”, ist das fast immer die Ursache.

Erstelle das Token unter Einstellungen → Git-Zugriffstoken. Dieselbe Seite zeigt den einmaligen Schritt OAuth für Git über HTTPS einrichten (einmalig): Führe ihn einmal aus, dann verwendet Git deine fremforge-Anmeldung (SSO) statt eines Tokens. Der Admin deiner Organisation entscheidet, ob persönliche Token erlaubt sind, welche Scopes du wählen kannst und wie lange sie gelten; sind Token für deine Organisation ausgeschaltet, nutze die OAuth-Einrichtung.

Damit du nicht jedes Mal gefragt wirst, speichere die Zugangsdaten im Credential Helper von Git:

git config --global credential.helper osxkeychain   # macOS
git config --global credential.helper manager        # Windows (Git Credential Manager)
git config --global credential.helper store          # Linux (plaintext — use only on trusted machines)

HTTPS über Port 443 ist immer verfügbar, unabhängig von Port 22 oder dem Ausweichweg über ssh.frem.sh. Es ist die am breitesten kompatible Verbindungsart.

Querverweise