我严格按照manual from the gitlab wiki设置了Gitlab。有用。我有一个Web访问,我也可以创建一个项目(并在它之后创建了git repo)。一切都好。
但是当我尝试使用
克隆新创建的项目仓库时git clone git@git.myserver.com:myproject.git
从我的开发机器上,服务器说我需要为 git 用户输入密码(此用户没有密码)。我认为它应该用我提供的密钥授权我。
我的环境:我已经在我的开发机器上成功创建了ssh密钥,将 HOME 环境变量设置为C:\ Users \。 Ssh正确地授权用户使用其他服务器(以及此服务器)的密钥。 我还为 git 用户添加了生成的密钥。
下一个命令也可以从本地服务器用户正常工作(这也是根据手册):
sudo -u gitlab -H git clone git@localhost:gitolite-admin.git /tmp/gitolite-admin
git用户的 authorized_keys 文件如下:
# 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
在我从gitlab web控制台添加ssh密钥后, authorized_keys 文件中是否有我的用户密钥?伙计们,我做错了什么?
答案 0 :(得分:3)
这意味着:
~/.ssh
目录中)~/.ssh/authorized_keys
中注册(这似乎就是这种情况:addig你的ssh密钥应该通过gitlab触发它的发布)。在保留之前从密钥中删除换行符。
您将了解更多信息:
ssh -vvv git@git.myserver.com
请注意,服务器上的所有操作都是以用户'git'完成的,这就是它要求git
密码的原因。 This is how gitolite works with ssh
正如OP提到的那样,问题是关于没有正确安装的gitolite 这是GitLab的“验证步骤”应该检测到的问题:
sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production
它应该产生,关于gitolite(我已经添加了'vvv
'和'^^^
'以强调):
# 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
如果没有,那么重新安装Gitolite是有序的。
答案 1 :(得分:0)
好的,我想我已经知道了。
当我从网络界面为用户添加密钥时,它尚未添加到 authorized_keys 文件中。我所做的是完全删除gitolite安装,然后根据gitolite wiki的本机手册重新安装它。现在,当我向用户添加密钥时,此密钥会添加到 authorized_keys ,现在一切正常。