1

我是使用 Git 的新手,所以这里是我的上下文:我正在处理两个项目,这些项目存储在不同服务器上的不同存储库中。在两台服务器上都使用 gitolite 来处理存储库的管理。

当我有一个项目要处理时,我使用以下命令将提交推送到服务器:git push --all git@myserver1.com:project1这没问题。现在,当我处理两个项目时,我认为应该可以,如果我使用相同的命令,只需更改服务器名称和项目,将其部署到服务器上。

但是不行,现在当我写git push --all git@myserver2.com:project2(我从项目的根文件夹运行此命令)时要求我输入密码:git@myserver2.com's password:并且在我输入密码后我得到:Permission denied (publickey,password).但是这种行为是不正确的,因为我已经设置了我的第二台服务器上的公钥。

我不知道问题出在哪里,也许gitolite搞砸了?在我的 PC 上结合两台服务器的配置?

4

1 回答 1

1

当我写git push --all git@myserver2.com:project2(我从项目的根文件夹运行此命令)时要求我输入密码。

这意味着您的公钥尚未被推送到myserver2.
您需要将其添加到您的本地gitolite-admin存储库,在keydir目录中,然后将该存储库推送到myserver2,以便 gitolite 将其添加到.ssh/authorizedkeys文件中。

对于 myserver1 或 myserver2,您需要能够键入:

ssh git@myserver2.com

并显示您的 gitolite ACL。
如果您没有看到这些权限(如果您需要输入密码),那么仍然有问题。

于 2011-03-05T18:25:20.590 回答