gitolite 允许已存在于 authorized_keys 文件中的用户

gitolite 允许已存在于 authorized_keys 文件中的用户

我正在使用 gitolite 来限制存储库的权限,到目前为止它运行良好,直到我尝试使用已在 authorised_keys 中添加公钥的用户(而不是通过 gitolite)进行克隆和推送。我认为问题在于我使用的密钥具有访问服务器的权限。当我尝试克隆 server:reponame 时,我收到一条错误消息,提示存储库不存在;当我从 repositories/reponame 克隆并尝试推送时,我收到以下错误:

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

有没有办法让已经有权访问服务器的用户拥有 gitolite 存储库的权限?我知道我可以为用户使用另一个密钥并将其添加到 gitolite keydir,但让这些用户也能访问 gitolite 存储库会更自然。

答案1

tl;dr 版本:为 gitolite 使用单独的密钥文件。

迟到总比不到好。

只需将已经存在的密钥文件添加到 gitolite/keys 目录,git add、git commit、git push。gitolite 将生成一条类似以下消息

remote: WARNING: keydir/keyfile_which_was_added.pub duplicates a non-gitolite key, sshd will ignore it

并且/home/git/.ssh/authorized_keys拥有两倍的钥匙,一次是已经存在的,另一次是

# gitolite start 

# gitolite end

部分。

我尝试将现有(旧)密钥移到该# gitolite部分之后,但我的 ssh 登录仅显示 gitolite 消息然后退出。

解决方案将是对 gilolite 使用单独的公钥

相关内容