我尝试在this manual之后安装git + gitolite - 使用服务器的root instalation。 我只是不明白新的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。现在添加和推送新的pub键成功更改了服务器上 git 用户的〜/ .ssh / authorized_keys。所以它似乎比我的第一次尝试更好。 但我仍然无法从其他地方克隆任何产品。 当我尝试使用msysgit为我的Windows PC添加pub键+编辑配置时,请尝试
$ 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 除了有人可以帮助我:)谢谢。
答案 0 :(得分:5)
是的,这就是问题......我也面临同样的问题..我使用puttygen ssh2-rsa格式创建公钥gitolite不接受这个。你需要转换为openssh
ssh-keygen -i -f yourname.pub&gt; yourname_openssh.pub
现在使用此转换后的公钥
答案 1 :(得分:3)
没有“keydata
”文件夹,只有“keydir
”和“conf
”(如上所述in the documentation)。
如果您已在本地克隆gitolite-admin
回购(git clone gitolite@server:gitolite-admin
),则需要:
keydir
repo中添加以用户命名的新公钥:username.pub
conf/gitolite.conf
gitolite-admin
repo上有一个特殊的挂钩,它将新的公钥添加到~/.ssh/authorized_keys
文件中。答案 2 :(得分:1)
我解决了msysgit问题。
因为我总是有密钥的自定义名称,所以我不能说步骤1是否是必要的,我不会再尝试:)现在我可以克隆/提交/推送 - 最后。
特别感谢VonC对他的耐心