用Gitosis无法正常工作

时间:2013-02-28 05:49:55

标签: git ssh-keys gitosis

我在Git工作期间请求帮助解决一个奇怪的错误。

我安装了Gitosis。这是我的配置:

cat /root/gitosis-admin/gitosis.conf 
[gitosis]
loglevel = DEBUG

[group gitosis-admin]
writable = gitosis-admin
members = admin

[group sugar-dev]
writable = sugar-dev
members = eyablokov

所以我指出一个SSH密钥“admin”来管理Gitosis。此外,我创建了“sugar-dev”repo并指出了另一个键作为成员。 “admin”键在一台机器上,没关系。其次,“eyablokov”键是我另一台机器上的常用成员键。我计划仅将此密钥用作开发。

我已经按照常规方式配置并将更改推送到gitosis-admin repo。这两个键都在keydir /目录中,并且也被远程推送。

在此之后,在另一台存储了“eyablokov”密钥的机器上,我创建了一个本地目录:mkdir ~/Projects/sugar-dev。输入:cd ~/Projects/sugar-dev。下一步:git init,之后:git remote add origin git@SERVER:sugar-dev.git。没关系。

在我尝试之后,例如,添加一些东西并提交并推送并遇到问题:

echo 'Please, describe the project.' > DESCRIPTION
git add DESCRIPTION 
git commit -am "Added description file"

git push origin master告诉我

Pushing to git@SERVER:sugar-dev.git
fatal: cannot exec '/Users/gular/.ssh/eyablokov_dsa': Permission denied
fatal: unable to fork

我不知道该怎么办。 git必须看到我的eyablokov,而不是eyablokov_dsa,关键。 dsa是我的另一把钥匙。我试过chmod,试图移动.ssh / config文件,其中IdentityFile指向dsa键。没有帮助。

1 个答案:

答案 0 :(得分:0)

当你使用基于ssh的git服务器(比如gitosis,或者更好,gitolite,因为gitosis已经过时且不再维护),你需要一个~/.ssh/config文件来指定您要使用的确切ssh密钥文件名 (也在“users are asked for password while using gitolite”中说明)

在你的情况下:

Host eyablokov
    HostName SERVER 
    User git
    IdentityFile /Users/gular/.ssh/eyablokov

允许你使用这种网址:

git clone eyablokov:sugar-dev.git

在Windows上,确保使用git-cmd.bat实例(msysgit附带),这将正确设置HOME环境变量(Windows默认情况下不设置)。