Adding users to Gitolite

2020-05-19 02:11发布

I'm trying to setup Gitolite but I'm running into a weird issue:

When I add a new public key file for a new user (say raphaelcruzeiro.pub), giolite sends me the following warning on push:

remote: 
remote:         ***** WARNING *****
remote:         the following users (pubkey files in parens) do not appear in the config file:
remote: raphaelcruzeiro(raphaelcruzeiro.pub)

And when I try to clone a repository with this user, I get a permission denied:

Cloning into gitolite-admin...
R access for gitolite-admin DENIED to raphaelcruzeiro
fatal: The remote end hung up unexpectedly

Am I missing something here? Where and how do I add the user to the configuration file?

Unfortunately Gitolite's documentation is rather vague on this matter.

标签: git ssh gitolite
2条回答
放我归山
2楼-- · 2020-05-19 02:37

Here's the workflow for adding users to gitolite:

Add the users public key to the map keys as <username>.pub

Edit your gitolite config file (gitolite.conf), this file is in the map conf. When you open it, everthing will be clear.

example:

repo  someproject

  RW+ = darhuuk

  RW  = raphaelcruzeiro

  R   = santaclaus

Commit the new key and the modified config file. Then push it to your gitolite server.

That should do it!

[Edit] BTW, here is the gitolite paragraph that explains what I wrote above: http://gitolite.com/gitolite/conf.html.

查看更多
爱情/是我丢掉的垃圾
3楼-- · 2020-05-19 02:40

Note that the recent gitolite v3.5.2-10-g437b497 introduces (September 2013, commit 59c817d0):

ukm, for "user key management".

User key management allows certain users to add and remove keys.

It introduces a level of delegation, when not just the gitolite admin user can add new ssh public keys, but other users can now do so as well.

You can see it in action in "contrib/t/ukm.t":

You need to enable that feature:

# enable user key management in a simple form.
# Guest key managers can add keyids looking like email addresses, but
# cannot add emails containing example.com or hemmecke.org.
system("sed -i \"s/.*ENABLE =>.*/'UKM_CONFIG'=>{'FORBIDDEN_GUEST_PATTERN'=>'example.com|hemmecke.org'}, ENABLE => ['ukm',/\" $h/.gitolite.rc");
查看更多
登录 后发表回答