I have setup a gitosis server following instructions from here. It works fine for the initial user but I have recently added a new user. Here are the steps I took.
- Created an rsa keypair using
ssh-keygen
with filename johndoe. - Then copied it to the keydir in gitosis admin repo.
- Edited the gitosis config file and added user johndoe to the list of members
- Commited the changes using
git commit -a -m "what i did"
- Pushed the changes to the server
After that I tried to check out with the new keyfile. It asks for the passphrase and when I enter it correctly, it the asks for the password for user git!!! There is not password for user git.
Now I have turned off PasswordAuthentication in sshd_config and now it says 'Permission denied (publickey). I have checked the git user's authorized_keys file and only one key is authorized inside it, i.e. the initial key for the gitosis admin.
I have also double checked the permissions on the ./gitosis-admin.git/hooks/post-update hook and it has 755
Make sure you have also added (git add) the .pub-files, and committed and pushed them properly to the repository.
Make sure you're putting your public key inside your gitosis repo, and not your private one!
When you generate a keyfile, you'll get a
.pub
file—use that one, but put the name in yourgitosis.conf
without the.pub
.I recently ran into this issue with a private repository for work. I came across this answer and read the answers; this and this did the trick.
To sum it up for posterity, make sure you add the
.pub
key to thegitosis-admin/keydir
directory. It has to be a .pub file.Commit & Push your changes to gitosis-admin.
Your
~/.ssh/authorized_keys
will be automatically updated so no need to cat-redirect the output of your public key file to it.Hope this helps
Gitosis is kind of stupid — is the filename you used for the keyfile literally "johndoe"? If so, change that:
and try again.
Also, as Arlen Cuss points out, make sure it actually is the public key, not the private key.
Hi, I had the same problem, and I finally found a way out.
I had to follow the instructions given by many websites, but each time after
It was asking password for GIT.
Resolution: I have inserted the admin public key (the one created on my client user; then imported into the server's tmp directory) inside my
authorized_keys
file (located in the/home/git/.ssh/
directory of the server) and it works now.I found this @ http://fclose.com/b/linux/366/set-up-git-server-through-ssh-connection/
Most likely what happened is that the post-update hook didn't run properly.
Check that ~git/.ssh/authorized_keys has your public key in it.
If not, the post-update hook didn't run. Permissions which have subsequently been changed? Some other configuration error. Copied from somewhere else?
On the server, checkout gitosis admin: git clone /path/to/gitosis-admin.git. Make an insignificant change to gitosis.conf. Check that your public key is in keydir. I had to run this as the git user.
Commit gitosis.conf. git add gitosis.conf && git commit -m "refresh keys".
Now check authorized_keys file.
Change gitosis.conf back and commit again.
Test access. If authorized_keys isn't updated after this process, look in logs for error messages.