Wie lässt sich eine fehlende oder inkorrekte SSH-Schlüssel-Konfiguration in Bitrise beheben?
- Einleitung
- Problem erkennen
- SSH-Schlüssel in Bitrise konfigurieren
- Öffentlichen Schlüssel auf Zielsystem hinterlegen
- Prüfung der Rechte und Pfade
- SSH Agent Setup Schritt einfügen
- Fehlersuche und Logs auswerten
- Zusammenfassung
Einleitung
Beim Einsatz von Bitrise für Continuous Integration und Deployment kann eine fehlerhafte oder fehlende SSH-Schlüssel-Konfiguration dazu führen, dass das System während des Build-Prozesses nicht auf private Repositories oder Server zugreifen kann. Dies äußert sich meist durch Fehler beim Klonen von Repositories oder beim Zugriff auf andere SSH-gesicherte Ressourcen. Im Folgenden wird erläutert, wie man solche Probleme erkennt und behebt.
Problem erkennen
Fehler, die mit SSH-Schlüsseln zusammenhängen, zeigen sich häufig in den Build-Logs von Bitrise. Dort findet man Meldungen wie "Permission denied (publickey)" oder Hinweise darauf, dass der SSH-Authentifizierungsprozess fehlgeschlagen ist. Diese Indikatoren deuten darauf hin, dass der verwendete SSH-Schlüssel entweder fehlt, falsch konfiguriert ist, nicht auf Bitrise hinterlegt wurde oder nicht die richtigen Zugriffsrechte besitzt.
SSH-Schlüssel in Bitrise konfigurieren
Um ein solches Problem zu beheben, muss zunächst sichergestellt werden, dass der private SSH-Schlüssel korrekt in Bitrise hinterlegt ist. Dabei geht man in der Bitrise-Weboberfläche unter den Bereich "SSH Keys" (meist unter "Workflow" -> "SSH Keys") und lädt den privaten Schlüssel, der Zugriff auf das gewünschte Repository oder System gewährt, hoch. Dabei ist es wichtig, dass der Schlüssel das richtige Format hat und keine Passphrase geschützt ist, da Bitrise standardmäßig keine Passphrase unterstützt.
Öffentlichen Schlüssel auf Zielsystem hinterlegen
Der öffentliche Teil des SSH-Schlüssels muss zudem auf dem Zielserver oder Repository-Dienst (z.B. GitHub, GitLab oder ein eigener Git-Server) hinterlegt sein, um den Zugriff zu erlauben. Dies geschieht meist, indem der Public Key in den SSH-Key-Einstellungen des Benutzerkontos oder des zugehörigen Deploy-Keys hinterlegt wird.
Prüfung der Rechte und Pfade
Ferner sollte geprüft werden, ob die Zugriffsrechte des SSH-Schlüssels korrekt sind und ob beim Bitrise-Build-Job die Umgebungsvariablen und Pfade richtig gesetzt sind. Manchmal kann es vorkommen, dass spezielle Umgebungsvariablen wie GIT_SSH_COMMAND gesetzt oder angepasst werden müssen, damit der SSH-Schlüssel korrekt verwendet wird.
SSH Agent Setup Schritt einfügen
In manchen Workflows ist es notwendig, den SSH-Agenten explizit zu konfigurieren. Bitrise bietet einen Schritt namens "Activate SSH key", der den hinterlegten privaten SSH-Schlüssel für den Job verfügbar macht. Dieser Schritt sollte im Workflow vor jedem Schritt ausgeführt werden, der SSH-Zugriff benötigt.
Fehlersuche und Logs auswerten
Nach dem Einstellen sollte man einen erneuten Build starten und dabei die Logs genau analysieren. Ggf. kann man im Schritt "Script" eigene Befehle wie ssh -v oder git clone mit erhöhtem Verbositätslevel ausführen, um detaillierte Hinweise zur SSH-Verbindung zu erhalten. So lassen sich oft Details und Ursachen für Zugriffsschwierigkeiten besser diagnostizieren.
Zusammenfassung
Eine fehlende oder inkorrekte SSH-Schlüssel-Konfiguration in Bitrise kann durch das korrekte Hochladen des privaten Schlüssels in den Bitrise-Einstellungen, das Hinterlegen des öffentlichen Schlüssels bei der Zielplattform, das Einfügen des "Activate SSH key"-Schritts in den Workflow sowie eine gründliche Prüfung der Berechtigungen und Logs behoben werden. Durch diese Maßnahmen stellt man sicher, dass der Build-Prozess reibungslos auf SSH-gesicherte Ressourcen zugreifen kann.
