无法使用别名获取多个 ssh 密钥以与 BitBucket 一起使用

Posted

技术标签:

【中文标题】无法使用别名获取多个 ssh 密钥以与 BitBucket 一起使用【英文标题】:Cannot get multiple ssh keys to work with BitBucket using aliases 【发布时间】:2017-01-17 16:48:38 【问题描述】:

我有两个 bitbucket 帐户,一个用于个人资料,一个用于工作。我个人的工作正常,我在工作中使用的也工作正常;但是,我希望能够在家中连接到工作,但我无法让它工作。

我的文件被称为:

## Unrelated ones I use for plan.io that still work

id_rsa
id_rsa.pub

## Personal one for bitbucket I just created because of seperation

homeid
homeid.pub

## Work one for bitbucket

workid
workid.pub

我的配置文件如下:

Host home@bitbucket.org
 HostName bitbucket.org
 IdentityFile ~/.ssh/homeid


Host work@bitbucket.org
 HostName bitbucket.org
 IdentityFile ~/.ssh/workid

现在我对如何使用别名进行克隆有点困惑,但尝试了:

git clone work@bitbucket.org:my-username/myrepo.git

但它失败并显示错误消息:

Cloning into 'myrepo'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我已将公钥添加到相应的 bitbucket 帐户中,所以不确定我在这里做错了什么?

【问题讨论】:

【参考方案1】:

好的,解决了。

我使用了错误的 git clone 地址,正确的是:

git clone git@workid:my-username/myrepo.git

...但还必须将我的 config 文件更改为以下内容以更改主机:

Host homeid
 HostName bitbucket.org
 IdentityFile ~/.ssh/homeid


Host workid
 HostName bitbucket.org
 IdentityFile ~/.ssh/workid

【讨论】:

【参考方案2】:

主持 home@bitbucket.org

ssh_config Host 指令不接受“用户名@”语法。请改用Match 指令:

Match user home host bitbucket.org
    HostName bitbucket.org
    IdentityFile ~/.ssh/homeid
...

【讨论】:

那么我该如何进行克隆呢? git clone home@bitbucket.org:my-username/myrepo.git ?

以上是关于无法使用别名获取多个 ssh 密钥以与 BitBucket 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

在 git bash 中生成 SSH 密钥,我无法获取 git 代理

jetty SSL如何与java密钥库和多个别名一起使用

同一个电脑使用多份密钥文件绑定多个帐号

ssh别名登陆服务器

[整理]配置SSH密钥自动登录远程服务器

在单个主机上使用多个密钥时 SSH 使用错误的密钥