Search code examples
gitubuntuclonegitolite

gitolite-admin clone issue


I am going nuts with a problem cloning the gitolite-admin repository. I have followed this http://sitaramc.github.com/gitolite/install.html#migr and it went perfectly.

I ran ssh-keygen -t rsa and scp ~/.ssh/id_rsa.pub morten@ubuntu-server:/tmp/morten.pub

authorized_keys on the server looks like this:

# gitolite start
command="/home/morten/gitolite/src/gitolite-shell morten",no-port-forwarding,no-X11-forwarding,no-agent-forward$
# gitolite end

Which AFAIK is okay.

When I run git clone morten@ubuntu-server:gitolite-admin on my client, I get

fatal: 'gitolite-admin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

I have no idea what I missed!


Solution

  • Using morten account is perfectly fine.

    However, your installation is strange, considering your current ~morten/.ssh/authorized_keys content:

    Instead of /home/morten/gitolite/src/gitolite-shell morten|, you should have /home/morten/gitolite/bin/gitolite-shell morten

    That means: gitolite-shell should be in your $PATH, and it should be in a bin directory, created after executing:

    "${github}/install" -to "${gtl}/bin"
    

    (See option 3 of the "actual install" section of "Installing Gitolite")

    with:

    • github the path where you have cloned https://github.com/sitaramc/gitolite
    • gtl the path where you want to install gitolite (in your case, for instance, /home/morten/gitolite)

    Then, it is easier to save your authorized_keys and .gitolite.rc file, and re-do the initialization process:

    gitolite setup -pk "${HOME}/.ssh/gitoliteadm.pub"
    

    (provided you created your public and private key, naming it 'gitoliteadm', with a simple:

    ssh-keygen -t rsa -f "${H}/.ssh/morten" -C "Gitolite Admin access (not interactive)" -q -P ""
    

    )

    Note that I keep the 'ssh' account name (morten) different than the gitolite server account (gitoliteadm) on purpose.

    You will still clone with git clone morten@ubuntu-server:gitolite-admin (because all ssh files are in ~morten/.ssh), but you will do so with the private/public key of gitoliteadm, prompting gitolite to access its repo with a gitolite "account" named "gitoliteadm".

    That way, if you change physical user account for your gitolite server, the "logical" account 'gitoliteadm' (referring to a role, not to a person or resource).