Ich verwende Gitolite, um die Berechtigungen für ein Repository einzuschränken, und das hat bisher gut funktioniert, bis ich versucht habe, mit einem Benutzer zu klonen und zu pushen, dessen öffentlicher Schlüssel bereits in authorized_keys hinzugefügt wurde, nicht über Gitolite. Ich denke, das Problem ist, dass ich den Schlüssel verwende, der Zugriff auf den Server hat. Wenn ich versuche, Server:Reponame zu klonen, erhalte ich eine Fehlermeldung, dass das Repository nicht existiert, und wenn ich von Repositories/Reponame klone und versuche, zu pushen, erhalte ich die folgenden Fehlermeldungen:
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 370 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Empty compile time value given to use lib at hooks/update line 6
remote: Use of uninitialized value in require at hooks/update line 7.
remote: Can't locate Gitolite/Hooks/Update.pm in @INC (@INC contains: /Library/Perl/Updates/5.10.0 /System/Library/Perl/5.10.0/darwin-thread-multi-2level /System/Library/Perl/5.10.0 /Library/Perl/5.10.0/darwin-thread-multi-2level /Library/Perl/5.10.0 /Network/Library/Perl/5.10.0/darwin-thread-multi-2level /Network/Library/Perl/5.10.0 /Network/Library/Perl /System/Library/Perl/Extras/5.10.0/darwin-thread-multi-2level /System/Library/Perl/Extras/5.10.0 .) at hooks/update line 7.
remote: BEGIN failed--compilation aborted at hooks/update line 7.
remote: error: hook declined to update refs/heads/master
Gibt es eine Möglichkeit, Benutzern, die bereits Zugriff auf den Server haben, die Berechtigung für die Gitolite-Repositorys zu erteilen? Ich weiß, dass ich einen anderen Schlüssel für den Benutzer verwenden und diesen zum Gitolite-Schlüsselverzeichnis hinzufügen könnte, aber es wäre viel natürlicher, wenn diese Benutzer auch Zugriff auf die Gitolite-Repositorys hätten.
Antwort1
tl;dr-Version: Verwenden Sie eine separate Schlüsseldatei für Gitolite.
besser spät als nie.
Fügen Sie einfach die bereits vorhandene Schlüsseldatei zum Verzeichnis gitolite/keys hinzu, git add, git commit, git push. gitolite generiert eine Meldung wie
remote: WARNING: keydir/keyfile_which_was_added.pub duplicates a non-gitolite key, sshd will ignore it
und der /home/git/.ssh/authorized_keys
hält gleich zwei mal den Schlüssel, einmal den bereits vorhandenen und einen weiteren im
# gitolite start
Und
# gitolite end
Abschnitt.
ich habe versucht, den vorhandenen (alten) Schlüssel nach dem Abschnitt zu verschieben # gitolite
, aber dann zeigt mein SSH-Login nur die Gitolite-Meldung an und wird beendet.
Lösung wird seinVerwenden eines separaten öffentlichen Schlüssels für Gilolite.