【问题标题】:Gitolite - How to create users?Gitolite - 如何创建用户?
【发布时间】:2011-04-11 08:14:49
【问题描述】:

我尝试在this manual 之后安装 git + gitolite - 使用来自服务器的 root 安装。 我只是不明白新 gitolite 用户是否必须拥有他们的用户帐户?。当我将 tester.pub 密钥添加到 keydir 文件夹并配置对某个存储库的访问权限时,git 总是要求输入密码并且不允许我克隆任何内容

git clone tester@myserver.com:testrepo
Initialized empty Git repository in /home/testuser/git/testrepo/.git/
testuser@myserver.com's password:
Permission denied (publickey,password).
fatal: The remote end hung up unexpectedly

我认为创建系统帐户 (adduser testuser) 是不必要的,因为即使没有对服务器的 root 访问权限,gitolite 也应该是可安装和可配置的。

那么谁能告诉我我误解了什么?

非常感谢。


编辑:

嗯...我使用客户端安装 transcript 重新安装 gitolite。现在为我的 git 用户在服务器上成功添加和推送新的 pub 密钥更改 ~/.ssh/authorized_keys。所以它似乎比我第一次尝试更好。 但是我仍然无法从其他地方克隆任何存储库。 当我尝试使用 msysgit 为我的 windows PC 添加 pub key + edit config 时,然后尝试

$ git clone git@server.com:project.git
cloning into project...
Fatal ERROR: unable to authenticate
Fatal: the remote end hung up unexpectedly

另一方面,当尝试另一个 linux 时,它仍然要求输入密码。

# git clone git@server.com:project.git
Cloning into project...
git@server.com's password: 

即使我为 git 用户提供密码:

fatal: 'project.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

这可能是系统帐号损坏造成的。

现在我真的不知道该怎么做 - 我应该在每个客户端上以某种方式创建 .ssh/config 以使其工作吗?

现在我开始有点恼火和不安,我可能会删除所有内容并尝试使用 mercurial:-D 除非有人可以帮助我:) 谢谢。

【问题讨论】:

    标签: git ssh configure gitolite settings


    【解决方案1】:

    是的,这就是问题......我也面临同样的问题......我使用 puttygen ssh2-rsa 格式创建了公钥 gitolite 不接受这一点。你需要转换成openssh

    ssh-keygen -i -f yourname.pub > yourname_openssh.pub

    现在使用这个转换后的公钥

    【讨论】:

    • @macintosh264:这可能意味着您的密钥已经是 OpenSSH 格式。
    【解决方案2】:

    没有“keydata”文件夹,只有“keydir”和“conf”(如提到的in the documentation)。

    如果你已经在本地克隆了gitolite-admin repo (git clone gitolite@server:gitolite-admin),你需要:

    • keydir repo 中添加以用户命名的新公钥:username.pub
    • conf/gitolite.conf 的用户组之一中添加相同的用户名
    • 将新的修改推回 gitolite 服务器(gitolite-admin repo 上有一个特殊的钩子,它将新的公钥添加到 ~/.ssh/authorized_keys 文件中)。

    【讨论】:

    • 感谢您的回复。我做了所有这些步骤,但它仍然要求我输入密码。我想编辑那些 hooks 吗? 您对 keydir 的看法是正确的,我写错了 dir name:) - 问题已更正
    • @Zap: 不需要钩子编辑;) 如果它要求任何密码,那么公钥必须没有被正确地添加到~/.ssh/authorized_keys 文件中。当gitolite-admin 使用错误的帐户(即在gitolite-admin 上没有完全写入权限的帐户)推送时,就会发生这种情况。推回修改后的 gitolite-admin 存储库时,您看到了什么确切消息?
    • 我认为,推送没有问题。消息是 Counting objects: 7, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (4/4), 344 bytes, done. Total 4 (delta 1), reused 0 (delta 0) To git@server.com:gitolite-admin `be99f7e..5892732 master -> master` 我可能会尝试使用其他安装方法重新安装 gitolite,看看是否有帮助
    • @Zap:好的。我推荐“来自客户端”的方法(stackoverflow.com/questions/5041067/gitolite-git-clone-error/…
    • @Zap:不在这个阶段,考虑到应该不需要钩子编辑。
    【解决方案3】:

    我解决了 msysgit 问题。

    1. 我重新安装了 msysgit 并使用 OPENSSH 而不是 PUTTY(建议在 gitolite 的安装手册中 - 但我之前安装了 msysgit)
    2. 生成 ssh-key 时,必须有默认名称 id_rsa 否则对我不起作用

    因为我总是有自定义键名,所以我不能说第 1 步是否必要,我不会再试一次:) 现在我可以克隆/提交/推送 - 终于。

    特别感谢 VonC 的耐心

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-02
      • 1970-01-01
      • 2011-08-05
      相关资源
      最近更新 更多