我在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键。没有帮助。
答案 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默认情况下不设置)。