使用非默认的SSH密钥进行克隆。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用非默认的SSH密钥进行克隆。相关的知识,希望对你有一定的参考价值。
我需要从我的本地机器上使用我公司的GitHub。我更喜欢使用SSH。
我有一个私人GitHub账户,已经使用本地默认密钥(~.sshid_rsa.pub)的SSH。我使用的是Windows。
我用我的公司账户登录,我可以看到仓库。如果我做 git clone <git url>
或 git clone <https url>
我收到: "找不到仓库"。
有了 git -T git@github.com
我看到我的个人GitHub账户是自动登录的。
我试着在公司GitHub账户上注册本地默认SSH密钥(id_rsa.pub),但它显示该密钥已经在使用中(我猜想它指的是我的个人账户),我又注册了另一个密钥(id_rsa_test.pub),但在git中找不到任何参数来传递不同的keycredentials。我注册了另一个密钥(id_rsa_test.pub),但我在git中找不到任何参数来传递不同的keycredentials?
我如何在本地电脑上用SSH使用git?不更换我的个人SSH密钥 用一个特定的SSH密钥?
作为一个临时的解决方案,我试着把这个放在GIT配置中,但并不奏效(仍然是 "找不到仓库 "的错误)。
Host GitHub
HostName github.com
User alex-company-user
IdentityFile c:Usersalex.ssh
ew_key_rsa
ssh-add <path to the new key file>
返回 "Error connecting to agent: 我想是因为这台机器上没有安装Git-Bash,(据我所知,实际上是必须要有一个一直运行的ssh-agent的。
GIT_SSH_COMMAND='ssh -i C:Usersalex.ssh
ew_key_rsa'
返回"'GIT_SSH_COMMAND'未被识别为内部或外部命令"
[临时解决办法:GitHub桌面]
作为一个临时的解决方案,我使用的是 GitHub桌面. 它总是用浏览器进行验证(也是在你通过用户密码和输入短信收到的验证码之后!),而且它总是使用已经在浏览器中登录的用户。所以,我输入我公司账户的用户名和密码,点击 "登录",收到带有验证码的短信,确定。 它说我要用浏览器认证,点击 "继续"......它打开浏览器,我就自动用我的个人账号认证了! 所以,我必须用我的个人账户退出浏览器,在浏览器中用我的公司账户登录后,重复这个过程。我为此开了一个 Issue)它让我从列表中选择要克隆的仓库。我克隆了它,发现它使用的是HTTPS URL(repo.git/config)。
[remote "origin"]
url = https://github.com/<my-company-repo>.git
(也许我可以把它改成SSH,我试试)所以,我希望这个解决方案不需要我经常在浏览器中切换用户。我还是想知道如何直接用git来做(不用第三方工具)。
作为一个临时的解决方案,我试着把这个放在GIT配置中,但没有用。
要使用该配置,你需要。
- 将用户改为
git
(与GitHub的SSH连接 始终 使用'git':私钥将认证实际用户) - 更改您的URL
所以:
Host GitHub
HostName github.com
User git <<=== not alex!
IdentityFile c:Usersalex.ssh
ew_key_rsa
还有:
cd C:path o
epo
git remote set-url GitHub:<me>/<myrepo>
关键的部分是要用刚性的私钥来关联到。git@github.com
这里的配置条目被命名为 GitHub
(但可以命名为 xxx
). 这就是为什么URL必须变成 GitHub:<company>/<comany-repo>.git
为了使用 ~/.ssh/config
条目 "GitHub
".
你可以为同一个git@github.com,定义很多条目,正如我8年前在""中说明的那样。如何从办公室的电脑上在个人GitHub repo上工作,其SSH密钥已经添加到与工作相关的GitHub账户中?"
以上是关于使用非默认的SSH密钥进行克隆。的主要内容,如果未能解决你的问题,请参考以下文章
在 GitLab 中使用 SSH 进行 Git 克隆不起作用