Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I am installing gitolite3 on a server, with ssh and http pulling/pushing/alltherest. During the process, a user and group gitolite3 is created.

When I run:

$ ssh gitolite3@server info

I get the correct gitolite3 message with RW repo information.

Trouble is, I want the usual user git instead of the cumbersome gitolite3, without breaking it all apart. Some other thread mentioned creating the user git with the same uid ang gid, but this does not give the same results as above.

When I login (using the conventional graphical login screen), there is my usual administrator user, and somehow the gitolite3 username (but Im not sure if this is the gitolite3 or the git user alias that i created).

How do I create the git user/replace the gitolite3 user so that ssh git@server info works with gitolite3? And what determines exactly when a user can login using the login screen, and how do turn that off?

share|improve this question
In response to distribution, desktop and environment: My OS is Centos 6.4, no radical changes were made to the default desktop environment. –  Florian Mertens Aug 3 '13 at 23:38

3 Answers 3

up vote 1 down vote accepted

If this is a new environment I would just create the new git user like normal and then run through the gitolite setup for that user (and forget the gitolite3 user).

If you really want to keep the current gitolite configuration/repositories/etc. you can probably just copy all the relevant files to that user once you are done (and make sure the ownership information is updated) and it might Just Work (check the gitolite docs on moving the repos to a new machine in case it lists any extra gotchas about this process).

share|improve this answer
Do you know whether this has been done before? Trouble also is, I don't know HOW the user gitolite3 was created, or with what parameters. It seems simple or some googling away, but I never know –  Florian Mertens Aug 4 '13 at 7:10
Has what been done before? Running gitolite under a user other than gitolite3? Yes. Absolutely. gitolite doesn't care in the slightest. I assume your gitolite3 user was created by a (slightly odd) gitolite package. There is nothing special about the user that gitolite runs under. It requires no special user or system configuration. The gitolite website has a very simple and very straightforward set of steps for setting up gitolite on a brand new system/user. See here or section 1.4 here. –  Etan Reisner Aug 4 '13 at 19:51
Turns out your answer is the best answer, although other factors are also influencing the creation of this user. For example, if you want to make gitolite3 accessible per httpd, the uid must be more than 500 for the official script to work, as well as the git gid. If you want a user and group other than the ugly default gitolite3 one, you create a new user and group with: '# groupadd -g650 git # useradd -o -d/Server/Projects -u650 -g650 -s/bin/sh -M git', login as that user and run the gitolite setup as such. Notice that git shell stops working along these lines. –  Florian Mertens Aug 11 '13 at 16:01
What official script? Why does uid matter for it? What about git shell (did you mean git shell or gitolite shell?) stops working with this change? –  Etan Reisner Aug 12 '13 at 14:26
The 'official' script I am talking about is the supported script by Thomas Hager on the Gitolite website. Not sure what the difference is when you say git shell or gitolite shell, I presume gitolite shell. I raised a different question about this here. –  Florian Mertens Aug 12 '13 at 15:31

If you don't already have a git user and basically want to rename the default gitolite3 user it may be fairly easy. Try running the following command as a privileged user.

usermod -l git gitolite3

This should rename the gitolite3 user to git. Which should allow the ssh commands to work as you wanted.

ssh git@hostname info
share|improve this answer

Your problem is you don't want to type the name, not the name as such. Then don't:


ssg () {

    ssh gitolite3@server $@


alias ssg="ssh gitolite3@server $@"

into your .bashrc, source it again and after that you can just say ssg info. Of course, you can use whatever you want and doesn't collide with a command you need instead of ssg.

There are two reasons to do it this way: First, it's even shorter than ssh git@server info and second, I dont' like to change these kind of default names as you can't be sure there isn't any hardcoded dependency on this name in the system, unless it's documented there isn't or how to change the default.

Where the valid users for GUI login are configured is dependent on your distribution, desktop environment and display manager.

share|improve this answer
See about distro above. The thing is, I want to use this server for a relatively small, commercial environment, but still too big enough to assume that 1) every client may not be using linux, and 2) not all users will (want to) remember that the git user is actually called gitolite3. So I am too keen on employing best practice, ie. having a 'git' user. Also, I totally agree that hardcoded dependencies on users are worrying me as well, so a somehow well working 'user alias' seemed the most appropriate solution.. –  Florian Mertens Aug 3 '13 at 23:42
You can put Host servername with User gitolite3 in .ssh/config. Unlike the alias, it would apply for most ssh-enabled tools like scp, rsync, etc. You just type ssh server and it uses the name from the config. Not that it helps with this question, just a better solution than shell aliases or functions. –  Steven Kath Aug 4 '13 at 1:47

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.