staging.inyokaproject.org

Probleme mit SSH-Authentication

Status: Gelöst | Ubuntu-Version: Server 20.04 (Focal Fossa)
Antworten |

regenpfeifer

Avatar von regenpfeifer

Anmeldungsdatum:
18. April 2006

Beiträge: 993

Hallo,

ich habe auf meinem Server (Ubuntu 20.04) eine Gitea-Instanz eingerichtet, die soweit ordnungsgemäß zu funktionieren scheint. Die Instanz läuft auf http://git.meine.domain:3000/ und wird über SSH / HTTPS mittels eines Apache Reverse-Proxy mit einem Letsencrypt-Zertifikat angesprochen. So wird es in den meisten Anleitungen empfohlen und dies klappt auch einwandfrei.

Für den Zugriff auf Git-Repositories habe ich einen SSH-Publickkey erstellt und auf die Gitea-Instanz hochgeladen. Nachdem der SSH-Dienst meines Servers insgesamt nicht auf dem Standard-Port 22 läuft und ich mehrere Publickeys im Einsatz habe, habe ich für die Gitea-Instanz diesen Eintrag in der Datei config im Verzeichnis ~/.ssh erstellt:

Host gitea
    HostName  git.meine.domain
    IdentityFile ~/.ssh/id_gitea
    User      git
    Port      XXXX

XXXX steht für die Ziffern meines SSH-Ports. Ich kann mich nun mittels

ssh gitea

mit der Gitea-Instanz auf meinem Server verbinden und erhalte dann folgende Meldung:

Hi there, regenpfeifer! You've successfully authenticated with the key named webmaster@regenpfeifer.net, but Gitea does not provide shell access.

Genau so ist dies vorgesehen und zeigt m.E., dass die SSH-Verbindung mittels des Publickkeys ordnungsgemäß funktioniert.

Wenn ich nun aber versuche ein Repository vom Server auf meinem lokalen PC mit diesem Befehl

git clone ssh://git@git.meine.domain:XXXX/regenpfeifer/Test.git

zu klonen, erhalte ich die folgende Fehlermeldung:

Klone nach 'Test' ...
Received disconnect from IPV6ADRESSE port XXXX:2: Too many authentication failures
Disconnected from IPV6ADRESSE port XXXX
fatal: Konnte nicht vom Remote-Repository lesen.
Bitte stellen Sie sicher, dass die korrekten Zugriffsberechtigungen bestehen
und das Repository existiert.

Ich deute diesen Fehler als einen Hinweis, dass der korrekte SSH-Key unter denjenigen, die auf ~/.ssh liegen, nicht gefunden wird. Der gleiche Fehler tritt nämlich auf, wenn ich den oben aufgeführten Eintrag in der Datei config deaktiviere und mich mittels

ssh -p XXXX git@git.meine.domain

mit der Gitea-Instanz verbinden möchte.

Liege ich mit dieser Einschätzung der Fehlerursache richtig und hat jemand eine Idee, wie ich den Fehler beheben kann, sodass ich mittles SSH Repositories von meinem Server auf lokale Rechner klonen kann?

Danke und beste Grüße!

sebix Team-Icon

Ehemalige

Anmeldungsdatum:
14. April 2009

Beiträge: 5584

regenpfeifer schrieb:

Host gitea
    HostName  git.meine.domain
    IdentityFile ~/.ssh/id_gitea
    User      git
    Port      XXXX
git clone ssh://git@git.meine.domain:XXXX/regenpfeifer/Test.git

Wenn du willst, dass deine Konfiguration in .ssh/config verwendet wird, musst du schon auch den gleichen Hostnamen verwenden. Sonst probiert SSH eben alle deine Public Keys durch (sofern nicht explizit deaktiviert) und du bekommst den Authentifizierungsfehler.

regenpfeifer

(Themenstarter)
Avatar von regenpfeifer

Anmeldungsdatum:
18. April 2006

Beiträge: 993

Besten Dank, sebix! Ja, mit dieser Änderung funktioniert es jetzt.

Ich habe schlicht übersehen, dass es auf beide Einträge Host und Hostname ankommt. Bei den anderen Einträgen in meiner config-Datei habe ich die Zeile Host bíslang als eine Art Shortcut verwendet, sodass ich mich mit ssh Host in den jeweiligen Server einloggen konnte und dabei der passende SSH-Key ausgewählt wurde.

Das funktioniert natürlich nur - wie mir jetzt klar ist - wenn der Wert von Host auch explizit aufgerufen wird, was bei dem clone-Befehl natürlich nicht der Fall ist.

Danke für die Aufklärung und beste Grüße!

Antworten |