Github多个帐户一台计算机总是看到一个帐户
这可能不是dup;我读过许多关于StackOverflow的类似问题,但没有读过这个问题 我试图在UbuntuLinux上使用多个git帐户,每当我尝试从第二个帐户推送时,它会认为我仍然使用第一个帐户的用户名Github多个帐户一台计算机总是看到一个帐户,git,github,Git,Github,这可能不是dup;我读过许多关于StackOverflow的类似问题,但没有读过这个问题 我试图在UbuntuLinux上使用多个git帐户,每当我尝试从第二个帐户推送时,它会认为我仍然使用第一个帐户的用户名 $ git push -u origin master ERROR: Permission to <act2>/<repo>.git denied to <act1>. 查看.git文件夹及其内容的权限。使用SSH github.com-vvvv确认哪
$ git push -u origin master
ERROR: Permission to <act2>/<repo>.git denied to <act1>.
查看.git文件夹及其内容的权限。使用
SSH github.com-vvvv
确认哪个SSH密钥正在传递给github要说明我对这个答案的假设,从问题标题听起来,似乎您真正想要做的是能够将github推送到被标识为不同github用户的github
如果是这样的话,您不应该在系统上创建多个用户,只是为了通过SSH作为不同的GitHub用户推送。正确的方法是在~/.ssh/config
中为github.com
设置两个别名,用于指定不同的标识文件。例如,您的~/.ssh/config
中可能包含以下内容:
Host github-act1
HostName github.com
User git
IdentityFile /home/whoever/.ssh/id_rsa.act1
Host github-act2
HostName github.com
User git
IdentityFile /home/whoever/.ssh/id_dsa.act2
然后,您可以向存储库添加两个遥控器:
git add remote act1 git@github-act1:whoever/whatever.git
git add remote act2 git@github-act1:whoever/whatever.git
然后,如果您想作为一个用户推送,您可以执行以下操作:
git push act1 master
。。。或作为第二个帐户:
git push act2 master
这看起来非常可疑。为什么您的主目录只是/home/
?如果多个用户拥有相同的主目录,那么ssh为两个用户找到相同的密钥并不奇怪。检查测试结果
echo $HOME
以每个用户的身份登录时。它们应该指向不同的目录。之所以会出现这种情况,是因为ssh代理缓存ssh密钥(您甚至可以删除该文件,并且它仍然允许ssh成功连接,直到缓存被清除为止),并将缓存密钥的优先级设置为甚至高于通过IdentityFile指定的密钥。通过运行以下命令,可以查看缓存了哪些文件:
ssh-add -l
您可以强制ssh代理忽略缓存,方法是在.ssh/config中为每个连接包含唯一标识的“yes”:
Host github
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes
Host github-work
HostName github.com
User git
IdentityFile ~/.ssh/id_dsa_work
IdentitiesOnly yes
更多信息请点击此处:
我也花了很长时间才发现这一点,希望它能帮助别人。sshgit@github.com-vvv说“嗨”(错误的帐户),我会仔细查看所有的输出,看看ssh为什么会进入我的其他用户行为并查看它。它输出:debug2:key:/home/.ssh/id_rsa和“remote:forced command:gerve”在一个VM中再次完成了整个过程(act1不存在),并且工作正常……但这绝对不理想:-(是的,我先尝试了这个方法。同样的错误。然后我转到了多个unix帐户方法,认为我有一些ssh配置问题…@AndrewStone:你是如何作为第二个用户登录的?当你作为第二个用户登录后,
echo$HOME
向你显示了什么?ssh@localhost。它显示了/HOME/。很抱歉响应延迟ng 4天断电这是一个巨大的帮助,菲尔。这立刻解决了我的问题。
ssh-add -l
Host github
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes
Host github-work
HostName github.com
User git
IdentityFile ~/.ssh/id_dsa_work
IdentitiesOnly yes