如何在同一台机器上使用多个帐户推送到多个Git存储库?

如何在同一台机器上使用多个帐户推送到多个Git存储库?,git,Git,对于第一个用户(Git用户,而不是Unix用户),我们称他为aaa,而不是第一个存储库。aaa使用命令全局设置为git user.name和user.email git config --global user.name "aaa" git config --global user.email aaa@live.com git push origin master aaa执行命令 git config --global user.name "aaa" git config --global

对于第一个用户(Git用户,而不是Unix用户),我们称他为aaa,而不是第一个存储库。aaa使用命令全局设置为git user.name和user.email

git config --global user.name "aaa"
git config --global user.email aaa@live.com
git push origin master
aaa执行命令

git config --global user.name "aaa"
git config --global user.email aaa@live.com
git push origin master
成功

然后我有了第二个用户,我们叫他bbb(同样是Git用户,不是Unix usr),在同一台机器上,但在不同的本地工作目录下,试图推送到不同的Git存储库。首先,我重写user.name和user.email属性。所以在git init之后,我立即执行:

git config user.name "bbb"
git config user.email bbb@live.com
然后确认:

git config --get user.name
返回bbb。当我尝试将bbb推送到他自己的存储库时,git会提示输入SSH密码短语,它似乎接受密码短语,但错误是说拒绝aaa的许可


我怀疑这与SSH密钥有关。这是正确的假设吗

在ssh协议上,您不必输入ssh密码短语:
一个“
ssh”username@servername
“应允许您访问远程(安全)外壳

权限被拒绝意味着您的服务器周围存在一些封装(基于ssh),例如
gitolite为
aaa
选择
bbb
的唯一方法是
bbb
使用
aaa
的公钥(以及对私钥的访问),如果它的
$HOME
与历史记录中用于提交条目的配置用户名
aaa

相同,则可能会出现这种情况,但对于ssh连接来说不是这样。如果您想使用与您登录的用户名不同的用户名,则必须修改相应的
.git/config
的原始url。我猜
url=ssh://bbb@服务器/…
可以。如果您想要无密码登录,您必须为aaa设置一个sshkey以bbb身份登录服务器,或者使用类似gitolite或gitosis的东西。

.git/config文件的用户部分是什么样子的?您找到这个了吗?我不知道我是否理解为什么在“git init”上进行git配置,而不是在“git克隆”上。您还可以提供“git clone”命令吗。如果它们是本地的,那么应该没有理由要求使用ssh密码。