I have setup a Gitlab strictly according to manual from the gitlab wiki. It works. I have a web access, I can create a project too (and git repo has been created after it). All is ok.
But when I try clone the newly created project repo with
git clone git@git.myserver.com:myproject.git
from the my development machine the server says that I need to enter password for the git user (this user have no password). I think it should auth me with key I provided.
My environment: I've successfully created the ssh keys on my dev machine, set the HOME environment variable to C:\Users\. Ssh is correctly authorize user with keys to other servers (and to this server too).
Also I've added the generated keys for my git user.
Next command is also working fine from the local server user (this is according to manual too):
sudo -u gitlab -H git clone git@localhost:gitolite-admin.git /tmp/gitolite-admin
My authorized_keys file for the git user is like:
# gitolite start
command="/home/git/bin/gl-auth-command gitlab",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa <LONG_KEY_HERE> gitlab@odiszapc
# gitolite end
Should there be my user key in the authorized_keys file after I've added ssh key from gitlab web console? Guys, what I'm doing wrong?
That means that:
- ether your public/private ssh keys aren't found locally (in your
~/.ssh
directory)
- or the public key hasn't been registered in the server
~/.ssh/authorized_keys
by gitlab (which seems to be the case here: addig your ssh key should trigger its publication by gitlab).
This is similar to GitLab issue 900.
You could have copy-paste your key with linebreaks in it.
Remove linebreaks from key before persisting.
You will know more with a:
ssh -vvv git@git.myserver.com
Note that all operations on the server are done as user 'git', which is why it falls back asking the git
password. This is how gitolite works with ssh.
As the OP mentions, the issue was about gitolite not being properly installed.
This is the kind of issue which should be detected by the "verification step" of GitLab:
sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production
It should produce, regarding gitolite (I have added the 'vvv
' and '^^^
' for emphasis):
# OUTPUT EXAMPLE
Starting diagnostic
config/database.yml............exists
config/gitlab.yml............exists
/home/git/repositories/............exists
/home/git/repositories/ is writable?............YES
vvvvvvvvvvvvvvvvvvv
remote: Counting objects: 603, done.
remote: Compressing objects: 100% (466/466), done.
remote: Total 603 (delta 174), reused 0 (delta 0)
Receiving objects: 100% (603/603), 53.29 KiB, done.
Resolving deltas: 100% (174/174), done.
Can clone gitolite-admin?............YES
^^^^^^^^^^^^^^^^^^
UMASK for .gitolite.rc is 0007? ............YES
If it does not, then a re-installation of Gitolite is in order.
Okay, I think I've got it.
When I add key for the user from web interface, it hasn't been added to authorized_keys file. What I do is make full delete of the gitolite installation and then reinstall it according to native manual from the gitolite wiki. Now when i've add a key to user, this key is added to authorized_keys and all works fine now.