我在Ubuntu 12.04上安装了Gitolite 3.5.3。我创建了测试仓库,我只能通过gitolite用户访问它,而不是其他人。 我需要允许访问其他系统用户(user1,user,user2)或用户组来通过ssh访问git(push,pull merge等),如下所示:
git clone user1@domain.com:megaproject
但我尝试这样连接:
git clone user@domain.com:megaproject
并为我获得的用户写下正确的密码:
fatal: 'megaproject' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
即使我使用ssh公钥在gitolite用户的主文件夹中创建keydir
目录 - 没有任何变化。
我应该更改以这种方式提供访问权限?
答案 0 :(得分:2)
您永远不会使用'用户'克隆/访问gitolite管理的回购 您始终使用用于安装gitolite的“git”帐户。
Gitolite将通过在~git/.ssh/authorized_keys file
中查找用于此次通话的公钥来推断出您实际是谁。
点击“How do programs like gitolite work?”了解更多信息。
如果您想以不同的用户身份访问gitolite管理的repo,您需要为这些用户提供正确的公钥/私钥,并在〜/ .ssh / config文件中引用私钥,如“ users are asked for password while using gitolite”。
Host gitolite_as_user1
HostName gitolite_server_name
User git
IdentityFile ~/.ssh/user1
Host gitolite_as_user2
HostName gitolite_server_name
User git
IdentityFile ~/.ssh/user2
请注意,ssh网址为:
ssh://gitolite_as_user1:yourRepo
ssh://gitolite_as_user2:yourRepo
它将始终使用'git'帐户(但使用不同的公共ssh密钥)