F=password_access password access to gitolite

(a.k.a: turning real users into gitolite users)

problems

This document solves several different problems. But first some names:

The problems it solves are:

  1. Alice doesn't like ssh keys and wants to stick to password access (which won't work with gitolite!), and she has or can get a real (unix) userid on server1.

  2. Alice is outside your corporate environment and needs to get in to server2 via server1.

It does this by making alice@server1 act like a "proxy" for git@server2.

what the 2 scripts actually do

instructions

server setup

Server1:

Server2: We assume gitolite is already installed on server2.

per-user setup

There are 2 types of users.

  1. Alice uses a password to access server1, or Alice uses a pubkey to access server1 but does not use an agent or enable agent forwarding.

  2. alice uses a pubkey to access server1, and does agent forwarding.

You can do this for several users in one shot, and collect all the the pubkeys.

Once you have collected all of them, send them to server2 or to someone who has push rights to the admin repo.

some hints, notes and caveats

This doesn't mean all your users have to be like this. You can have normal users also. In fact, you can have users who give you a pub key from their workstation the normal way, as well as use this method. (I strongly suggest that all such keys be placed in keydir/indirect/ instead of in keydir/).

security and trust discussion

For type 1 users, a default key pair (i.e., including a private key) must be generated on server1 and given to the gitolite admin for inclusion as the user's key for gitolite.

This means that the user must implicitly trust server1's administrators, since they can impersonate her to server2. (If server1 and server2 are the same machine or have the same administrators, this does not matter).

For a type 2 user, no keys need to be generated, and this type of user need not trust server1 at all. In fact, she's only using this method due to firewall issues, and the only thing that gl-shell-setup is doing is to run 'chsh'.