多个SSH密钥和用户帐户

时间:2016-12-29 21:59:45

标签: windows git ssh gitlab

我在Gitlab中有两个用户帐户。一个使用axmug用户,另一个使用GbFlow
当我使用axmug用户登录时,配置文件设置中有任何键 但是当我使用GbFlow用户登录时,我创建了一个SSH密钥文件,我可以在配置文件设置中查看它 我在Windows 7上使用Git Bash,当我输入cd /Users/Invitado/.sshls时,我可以看到三个文件:id_rsaid_rsa.pubknown_hosts
此密钥是使用axmug用户生成的。两个用户都有不同的电子邮件。

我想要做的是使用GbFlow用户上传Android项目。当我尝试时,我在Git Bash命令行中键入以下内容:

git init
git remote add origin git@gitlab.com:GbFlow/GlobalFlow.git
git add .                                                           
git commit
git push -u origin master

除最后一行外,一切正常:git push -u origin master。此时我显示错误:

Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

我创建了密钥。我做错了什么?

1 个答案:

答案 0 :(得分:2)

Invitado表示这些ssh密钥是使用Guest帐户创建的。

如果您未以Guest身份登录,而是使用实际帐户登录,则ssh会在%HOME%\.ssh中查找这些密钥,默认情况下HOME设置为%USERPROFILE% }。
输入set us即可查看USERPROFILE的值。

  

此密钥是使用axmug用户生成的。

创建这些密钥与本地 Windows帐户无关。重要的是公共id_rsa.pub复制到:GitLab帐户。请参阅" How to create your SSH Keys"

这将是GitLab未对您进行正确身份验证的第一个原因:在您自己的%USERPROFILE%\.ssh中移动这些密钥以从GbFLow身份中受益(假设GbFlow个人资料中包含公钥他/她的设置) 输入ssh -T git@gitlab.com确认您被视为GgFlow

如果您需要管理两个不同的GitLab远程帐户,请使用相同的本地Windows帐户(Invitado或其他方式),然后查看Working with non-default SSH key pair paths,并使用%USERPROFILE%\.ssh\config文件。

# GbFlow
Host gbflow
Hostname gitlab.com
RSAAuthentication yes
User git
IdentityFile ~/.ssh/gbflow_rsa

# axmug
Host axmug
Hostname gitlab.com
RSAAuthentication yes
User git
IdentityFile ~/.ssh/axmug_rsa

然后使用ssh网址bgflow:<user>/<repo.git>axmug:<user>/<repo.git>

这假设您创建了两组不同的ssh对密钥。

对于gbflow(重命名现有的id_rsa / id_rsa.pub文件):

~/.ssh/gbflow_rsa
~/.ssh/gbflow_rsa.pub

对于axmugssh-keygen -t rsa -P "" -C "axmug GitLab access" -q -f ~/.ssh/axmug_rsa):

~/.ssh/axmug_rsa
~/.ssh/axmug_rsa.pub