克隆 repo 时的 Gitlab/Gitolite 问题

标签 git ssh gitolite gitlab

我严格按照manual from the gitlab wiki设置了一个Gitlab .有用。我有一个网络访问权限,我也可以创建一个项目(并且在它之后创建了 git repo)。一切正常。

但是当我尝试克隆新创建的项目仓库时

git clone git@git.myserver.com:myproject.git

在我的开发机器上,服务器说我需要为 git 用户输入密码(该用户没有密码)。我认为它应该使用我提供的 key 对我进行授权。

我的环境:我已经在我的开发机器上成功创建了 ssh key ,将 HOME 环境变量设置为 C:\Users\。 Ssh 正确授权用户使用其他服务器(以及此服务器)的 key 。 我还为我的 git 用户添加了生成的 key 。

下一个命令也可以从本地服务器用户正常工作(这也是根据手册):

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 key 后,authorized_keys 文件中是否应该有我的用户 key ?伙计们,我做错了什么?

最佳答案

这意味着:

  • 在本地找不到您的公共(public)/私有(private) ssh key (在您的 ~/.ssh 目录中)
  • 或者公钥尚未通过 gitlab 在服务器 ~/.ssh/authorized_keys 中注册(这里似乎是这种情况:添加你的 ssh key 应该触发它由 gitlab 发布) .
    这类似于 GitLab issue 900 .
    您可以复制粘贴带有换行符的 key 。

Remove linebreaks from key before persisting.

你会知道更多:

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。

关于克隆 repo 时的 Gitlab/Gitolite 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11491267/

相关文章:

GIT 服务器在 Ubuntu 上安装失败

linux - 我们如何在每次提交时备份或克隆 GitoLite 服务器

Git 搜索一个文件被修改的提交

linux - 使用不同用户名的 ssh 客户端从 Linux 服务器复制文件

Git:使用 git clean 排除一个文件

networking - Knife 零 - SSH::Exception 远程转发请求失败

c# - sshClient.RunCommand C# 超时

git - 如何将现有的 Git 存储库克隆到远程 Gitolite 服务器?

eclipse - 如何使用 Eclipse EGit 从 GIT 存储库创建新项目

linux - 我运行 git 时实际需要的 git 'make' 中的文件是什么?