无法添加Gitolite用户

时间:2012-03-09 08:26:07

标签: git gitolite

我刚开始使用gitolite。 我在远程服务器上安装了gitolite。

http://dev.remoteserver.com

所以我可以git-cloning gitolite-admin.git。

git clone ssh://gitolite@dev.remoteserver.com/gitolite-admin.git

我想使用gitolite添加用户和repo。以下是普通的添加用户流程。


在本地存储库中, conf / keydir目录存在。

open conf/gitolite.conf 

在文字下方添加。

repo   aproject
       RW+ = testid

和, 在local-mac中,

ssh-keygen -t rsa. 

在keydir / testid.pub中添加了公钥 然后,git add / git commit / git push做得很好。


好的,然后我尝试从远程服务器克隆新的git repo。

git clone ssh://testid@dev.remoteserver.com/aproject.git

但是,它会犯这样的错误......

mac$ git clone ssh://testid@dev.remoteserver.com/aproject.git
Cloning into 'aproject'...
mac@dev.remoteserver.com's password: 
Permission denied, please try again.
mac@dev.remoteserver.com's password: 
Permission denied, please try again.
mac@dev.remoteserver.com's password: 
Permission denied (publickey,gssapi-with-mic,password).
fatal: The remote end hung up unexpectedly

我认为git克隆不应该问密码。 并且正确的密码也无法通过git-cloning。

我的远程服务器是CentOS。

欢迎评论。

2 个答案:

答案 0 :(得分:6)

使用gitolite,您使用用于安装gitolite的帐户完成所有ssh通信。
在您的情况下:gitolite

但是,您可以指定不同的公钥,以指示gitolite对其他用户进行身份验证。
ssh会话仍将以gitolite执行 但传递给gitolite脚本的名称将为testid(因为公钥已由gitolite在其~/.ssh/authorized_keys中注册为“testid

因此,请使用~testid/.ssh/config文件,在其中提及正确的参数:

Host gitolitesrv
Hostname dev.remoteserver.com
User gitolite
IdentityFile /path/to/tesitd

请注意,/path/to/必须包含您的私钥testid和您的公钥testid.pub。 此时,他们的名字并不重要(可以是xxxxxx.pub
重要的是gitolite-admin/keydir/testid.pub中存储的公钥名称(因为该文件的名称用于authorized_keys forced-command行中记录的ID)

然后,这个git clone应该有效:

git clone gitolitesrv:aproject.git

OP Jinbom Heo提到有困难:

克隆到'aproject'...... 项目的R访问被拒绝给gitolite
(或者在给定路径上可能没有存储库。你拼写正确吗?) 致命:远程端意外挂断

  

git用户似乎不是testid而是gitolite

Host dev2git 
  Hostname dev.remoteserver.com 
  User gitolite 
  IdentityFile ~/.ssh/testid
  

gitolite.conf文件包含以下内容(git-pushing):

回复aproject   RW + = testid

  

最后,我找到了原因   使用ssh-keygen生成ssh-key时,我输入了密码。那就是问题   所以我尝试了没有密码的keygen,它的工作原理〜。我不知道为什么在我制作密钥时不应该添加密码。无论如何,它运作良好


我可以确认我一直使用无密码短语 我确实希望用密码来保护您的密钥,请参阅“appendix 1: ssh daemon asks for a password

  

确保要求您输入密码而不是密码   不要混淆或错误提示输入密钥“/home/sitaram/.ssh/id_rsa”的密码输入:来自远程服务器的密码提示!

     

使用ssh keypair创建ssh-keygen时,您可以选择使用密码来保护它。
  当您随后使用keypair访问远程主机时,您的本地ssh客户端需要解锁相应的私钥,ssh可能会询问您在设置时设置的密码您创建了keypair

     

每次尝试使用私钥时,有两种选择可以避免此提示。

     
      
  • 第一种是创建没有密码的密钥对(只要在提示输入密码时按Enter键)   一旦一切正常,请务必使用ssh-keygen -p
  • 添加密码   
  • 第二种方法是使用ssh-agent(或keychain,然后使用ssh-agent)或类似的东西来管理您的密钥。
      除了与ssh-agent讨论另外一个潜在的问题点(请参阅“appendix 3: ssh client may not be offering the right key”)之外,对ssh-agent/keychain的进一步讨论超出了本文档的范围。
  •   

答案 1 :(得分:0)

在初始设置后我无法克隆gitolite-admin存储库,这是因为我给了gitolite用户git和{{1的主文件夹的组写权限不喜欢那样。


我查看了ssh,看到了这个:

  

身份验证被拒绝:目录/ home / git

的所有权或模式不正确

所以我所要做的就是:

/var/log/secure

参考文献: