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.
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.
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");