16

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.

Raphael
  • 7,972
  • 14
  • 62
  • 83
  • You can also check out the new gitolite ukm (User Key Management) feature. See [my answer below](http://stackoverflow.com/a/18693260/6309) – VonC Sep 09 '13 at 07:29

2 Answers2

25

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.

AVH
  • 11,349
  • 4
  • 34
  • 43
  • If you expect all users to be able to work with a given repository, you can use `@all` - but that's not a very good idea for your admin repo, generally. You want to add access to that on a case-by-case basis. – Cascabel Apr 15 '11 at 01:27
  • Thank you. Now I realized that what I was trying to do what conceptually wrong and that gitolite is easier than I thought it would be. (I'm still having nightmares about my previous experience trying to setup gitosis) – Raphael Apr 15 '11 at 17:19
  • About that official manual link - there's no even a word about gitolite.conf, and I totally don't understand how the hell to add or extracts keys from gitolite installation... – holms Aug 17 '12 at 13:27
  • BTW the link is dead – MoonCactus Mar 06 '17 at 11:18
  • @MoonCactus Thanks for the notification. Link fixed. – AVH Mar 06 '17 at 15:22
1

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");
VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250