我是使用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上结合两台服务器的配置?
答案 0 :(得分:1)
当我写
git push --all git@myserver2.com:project2
(我从项目的根文件夹运行此命令)时,我要求输入密码。
这意味着您的公钥尚未被推送到myserver2
的gitolite repo
您需要add it to your local gitolite-admin
repo, in the keydir
directory,并将该回购推送到myserver2
,以便将gitolite添加到.ssh/authorizedkeys
文件中。
对于myserver1或myserver2,您需要输入:
ssh git@myserver2.com
显示你的gitolite ACL 如果您没有看到这些权利(如果您需要输入密码),那么仍有问题。