2

我尝试按照本手册安装 git + gitolite - 使用服务器的根安装。我只是不明白新的 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 也应该是可安装和可配置的。

那么有人可以告诉我我误解了什么吗?

非常感谢。


编辑:

嗯...我使用客户端安装记录重新安装 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 除了有人可以帮助我:) 谢谢。

4

3 回答 3

5

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

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

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

于 2011-05-31T06:26:34.827 回答
3

没有 ' keydata' 文件夹,只有 ' keydir' 和 ' conf' (如文档中所述)。

如果您已在本地克隆了gitolite-adminrepo ( git clone gitolite@server:gitolite-admin),则需要:

  • keydir在repo中添加以用户命名的新公钥:username.pub
  • 在其中一个用户组中添加相同的用户名conf/gitolite.conf
  • 将新的修改推回 gitolite 服务器(gitolite-adminrepo 上有一个特殊的钩子,它将新的公钥添加到~/.ssh/authorized_keys文件中)。
于 2011-04-11T08:37:17.747 回答
1

我解决了 msysgit 问题。

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

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

特别感谢 VonC 的耐心

于 2011-04-13T20:06:06.857 回答