Gitolite SSH-URL-Format

Gitolite SSH-URL-Format

Also habe ichGitoliteingerichtet. Einfach. Aber ich habe ein Problem. Die SSH-URLs folgen dem Format git@host:repo. Ich bin es gewohntBit Bucket/Githubwobei die URLs das Format von haben git@host:user/repo. Gibt es eine Möglichkeit, das letztere Format zu erhalten, indem manGitolit?

Noch eine Frage. Ich habe meine ~/.ssh/configDatei mit folgendem Eintrag eingerichtet:

Host <host>
User <user>
IdentityFile <path/to/public/key>

Ich habe keine Konfiguration, die gitmich als Benutzer angibt, und dennoch kann ich git@host:repoproblemlos klonen. Offensichtlich verwendet mein SSH-Client meinen öffentlichen Schlüssel, um auf den Server zuzugreifen, weshalbGitolitlässt mich das Repo klonen, aber woher weiß mein SSH-Client, dass er meinen öffentlichen Schlüssel verwenden soll, der nur für den <user>Benutzer und nicht für den gitBenutzer selbst konfiguriert ist?

Antwort1

SehenGitolite und SSH

Die Beschränkung der Benutzer auf bestimmte Befehle ist für Gitolite sehr wichtig.
Wenn Sie lesenman sshdund suchen Sie nach dem Dateiformat authorized_keys. Sie werden viele Optionen sehen, die Sie der öffentlichen Schlüsselzeile hinzufügen können, um den eingehenden Benutzer auf verschiedene Weise einzuschränken. Beachten Sie insbesondere die command=Option, die bedeutet: „Unabhängig davon, was der eingehende Benutzer tun möchte, führen Sie stattdessen zwangsweise diesen Befehl aus.“

Beachten Sie auch, dass, wenn die Datei authorized_keys viele öffentliche Schlüssel (also Zeilen) enthält, jede Zeile einen anderen Satz an Optionen und command=Werten aufweisen kann.

Ohne diese command=Option gibt Ihnen der SSH-Daemon einfach eine Shell, was wir für unsere Gitolite-Schlüssel nicht wollen (obwohl wir durchaus andere Schlüssel haben könnten, die wir zum Abrufen einer Shell verwenden).

Dies ist das Rückgrat dessen, was Gitolite funktionieren lässt. Bitte stellen Sie sicher, dass Sie dies verstehen..

Diese command=verwenden den Namen Ihres öffentlichen Schlüssels als Benutzernamen.

Alle Ihre SSH-Abfragen werden also mit folgendem Befehl durchgeführt:

  • der Benutzer git
  • ein öffentlicher Schlüssel, dessen Name in den Parametern der Direktive „command=“ in der registriert ist ~git/.ssh/authorized_keys.

Was das betrifft user/repos, das nächste, was Sie mit Gitolite erreichen würden, ist inWilde Repos und Repo-Muster.

repo    CREATOR/a[0-9][0-9]

verwandte Informationen