我在Gitlab有两个用户帐户。一个是axmug
用户,另一个是GbFlow
用户。
当我使用axmug
用户登录时,配置文件设置中有任何键。
但是当我使用GbFlow
用户登录时,我创建了一个SSH密钥文件,我可以在配置文件设置中观看它。
我在Windows 7上使用Git Bash,当我输入cd /Users/Invitado/.ssh
和ls
时,我可以看到三个文件:id_rsa
、id_rsa.pub
和known_hosts
。
此密钥是使用axmug
用户生成的。两个用户有不同的电子邮件。
我想做的是使用GbFlow
用户上传一个Android项目。当我尝试时,我在Git Bash命令行中输入以下内容:
git init
git remote add origin [email protected]: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条答案
按热度按时间yizd12fk1#
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 [[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection)
以确认您被视为GgFlow
。如果您需要从同一个本地Windows帐户(
Invitado
或其他)管理两个不同的GitLab远程帐户,请参阅使用非默认SSH密钥对路径,并使用%USERPROFILE%\.ssh\config
文件。然后使用ssh url
bgflow:<user>/<repo.git>
或axmug:<user>/<repo.git>
这里假设您已经创建了两组不同的ssh对键。
对于
gbflow
(重命名现有的id_rsa
/id_rsa.pub
文件):对于
axmug
(使用ssh-keygen -t rsa -P "" -C "axmug GitLab access" -q -f ~/.ssh/axmug_rsa
):