Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Github多个帐户一台计算机总是看到一个帐户_Git_Github - Fatal编程技术网

Github多个帐户一台计算机总是看到一个帐户

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确认哪

这可能不是dup;我读过许多关于StackOverflow的类似问题,但没有读过这个问题

我试图在UbuntuLinux上使用多个git帐户,每当我尝试从第二个帐户推送时,它会认为我仍然使用第一个帐户的用户名

$ 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