无法使用新用户克隆git存储库

时间:2011-08-11 03:15:55

标签: git msysgit gitolite

我的设置是ubuntu - gitolite - msysgit。完成本教程后:

https://sites.google.com/site/senawario/home/gitolite-tutorial

一切正常。

所以我修改并提交了 - 推送配置文件:

repo    gitolite-admin
        RW+     =   id_rsa

repo    testing
        RW+     =   @all

repo    project-euler
        RW+     =   tester

Everyhting得到了更新等。

我现在想用“测试者”用户测试这个,但我不能。不应该git clone tester @ myServer:project-euler work?

如果我尝试以上操作,我会得到:

$ git clone tester@192.168.1.3:project-euler
Cloning into project-euler...
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

我从我用来管理git的同一台机器上试过这个。

如果我尝试使用它:

git git@192.168.1.3:project-euler

我得到:R-access for project-euler DENIED to id_rsa

我认为这是正常的,因为git用户没有访问权限。

有什么想法吗?

按照@VonC链接后,我按照提到的方式创建了配置文件。我仍然遇到同样的问题,所以我对用户遇到麻烦时的ssh -v很开心。输出是:

OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
debug1: Reading configuration data /c/Users/Stefanos/.ssh/config
debug1: Applying options for 192.168.1.3
debug1: Connecting to 192.168.1.3 [192.168.1.3] port 22.
debug1: Connection established.
debug1: identity file /c/Users/Stefanos/.ssh/tester type 1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.8p1 Debian-1ubuntu3
debug1: match: OpenSSH_5.8p1 Debian-1ubuntu3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host '192.168.1.3' is known and matches the RSA host key.
debug1: Found key in /c/Users/Stefanos/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /c/Users/Stefanos/.ssh/tester
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

更新

我设法使用git clong git @ server:repo克隆了repo - 而不是tester @ server:repo。

此外,如果我有配置文件,我无法以管理员身份登录。它只记录为测试人员。可能应该有一种方法来配置它。谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

首先要检查新用户的公钥是否已发布到gitolite服务器。

  • 检查~git / .ssh / authorizedkeys的内容,并查找包含测试人员的行
  • 检查gitolite-admin repo / keydir的内容,并查找包含公钥的“tester.pub”文件(不要忘记those public keys are named after the usertester.pub这里)
  • 检查测试人员是否确实在.ssh id_rsaid_rsa.pub

答案 1 :(得分:0)

你对gitolite用户和linux用户感到困惑。它们具有一些共同特征,但在其连接到gitolite时,总是在git URL中使用名为“git”的用户。无论如何,无论您尝试连接的用户是否必须拥有密钥对(〜/ .ssh / id_rsa [.pub])。所以,让我们说你是“鲍勃”。您的公钥位于/home/bob/.ssh/id_rsa.pub。必须将该公钥添加到gitolite配置中。假设您在添加它时将其命名为“foo.pub”。现在“foo”是一个有效的gitolite用户,您可以在配置中参考。请记住,本地用户(bob),用户连接到gitolite(git)和gitolite用户(foo)之间没有隐式或显式连接。唯一的连接是公钥,它将本地计算机上的“bob”标识为gitolite的“foo”。