Post

AzureDevOps und der SSH-Key - es kann nur einen geben!

AzureDevOps und der SSH-Key - es kann nur einen geben!

Das Problem: remote: Public key authentication failed.

Wer in AzureDevOps SSH-Keys z.B. für Repositories nutzen möchte, könnte über folgenden Meldung stolpern:

1
2
remote: Public key authentication failed.
fatal: Could not read from remote repository.

Das Spannende ist dabei die Konstellation wann der Fehler auftritt. Auf meinem Arbeitsrechner bekomme ich die Fehlermeldung nicht, auf meinem HomeOffice-Rechner schon.

Und ja, einige sagen “ist doch klar” - hast Du die .ssh/config gepflegt. Ja das habe ich. - Wahrscheinlich ist dein Schlüssel falsch. Nein ist er nicht. Beispieleintrag aus der .ssh/config:

1
2
3
Host ssh.dev.azure.com
  HostName ssh.dev.azure.com
  IdentityFile ~/.ssh/key_for_work

Versuchen wir also mal per ssh -vvv -T ssh.dev.azure.com herauszufinden was los ist.

Ist es der Algorythmus? Nein, obwohl AzureDevOps da schon etwas pingelig ist: RSA-SHA2-256 oder RSA-SHA2-512sind supported

Die Lösung: IdentitiesOnly yes bzw. RTFM

Die FAQ von Microsoft brachte doch tatsächlich die Lösung. Hier stand geschrieben, das nur 1 Schlüssel angeboten werden darf und auch nur der erste geprüft wird. Der wichtige Teil für meine .sshconfig war dann die letzte Zeile:

1
2
3
Host ssh.dev.azure.com
  IdentityFile ~/.ssh/id_rsa_azure
  IdentitiesOnly yes

Die Einstellung IdentitiesOnly yes stellt sicher, dass SSH keine andere verfügbare Identität zur Authentifizierung verwendet. Diese Einstellung ist besonders wichtig, wenn mehr als eine Identität verfügbar ist.

Fazit:

  • ssh -vvv bzw. -T kann helfen.
  • unterstützten Cypher überprüfen
  • SSH-Config pflegen
  • notfalls einmal das FAQ von Microsoft befragen

Diesmal war es kein Tool-Tip, sondern eher was aus dem IT-Alltag. Ich hoffe es hat trotzdem etwas geholfen.

This post is licensed under CC BY 4.0 by the author.