我试图通过SSH从同一台机器上运行多个Bitbucket帐户。
在我的.ssh \ config文件中,我有:
Host account1.bitbucket.org
Hostname bitbucket.org
PreferredAuthentications publickey
IdentitiesOnly yes
IdentityFile ~/.ssh/account1
Host account2.bitbucket.org
Hostname bitbucket.org
PreferredAuthentications publickey
IdentitiesOnly yes
IdentityFile ~/.ssh/account2
然后我更改了git repo的遥控器以使用别名:
git@account1.bitbucket.org:myUserName/myRepoName.git
git@account2.bitbucket.org:myUserName/myRepoName.git
然后在Pageant(在系统托盘中),我添加了两个PPK密钥。
不幸的是,如果我已将两个键添加到Pageant,则只有一个帐户有效。
如果我一次只有一个会话中的一个键,那么它将适用于我添加到Pageant的任何Bitbucket帐户。
如果在其列表中有多个密钥,那么看起来像是没有使用正确的密钥。
关于它为什么要这样做的任何想法?
答案 0 :(得分:2)
Atlassian Answers上的这个link解释了如何将PuTTY和SSH与多个bitbucket帐户一起使用:
解决此问题的一种方法是在PuTTY中执行相同的配置 也消除了要发送的密钥的歧义(以及因此哪个用户 认证为)。
启动PuTTY(如果你没有,请从putty.org下载)
在主机名字段中输入“bitbucket.org”
转到Connection> SSH>在树中验证
指定用于BB用户的密钥
返回树中的“会话”
在“已保存的会话”下方输入别名(例如bb-user1)和 保存
为每个BB用户重复2-6并保存为不同的会话名称
然后在您的远程URL中,将“bitbucket.org”替换为会话 name(例如bb-user1)消除首先发送的SSH密钥的歧义。这个 与在OpenSSH中使用IdentityFile相同。
最后,您可以在分页中添加密钥以缓存密钥密码。
答案 1 :(得分:0)
我通过不使用Pageant来完成这项工作。我使用Sourcetree作为Git GUI,在选项中,有一个下拉菜单,说明是使用OpenSSH还是Putty / Plink。
根据Steve Streeting的描述:
https://answers.atlassian.com/questions/164479/sourcetree-support-multiple-ssh-keys
听起来像Pageant并没有使用.ssh \ config配置。
通过更改为OpenSSH,然后使用ssh-keygen重新生成密钥,并通过Sourcetree"工具添加私钥。添加SSH密钥"菜单,现在可以在多个帐户中使用不同的密钥完美地工作。我只需要更改每个git仓库的远程URL以在配置文件中使用正确的别名(如我的初始帖子中所述)。
<强>更新强>:
我在这里写了一篇博客文章: http://www.danclarke.com/multiple-ssh-keys-for-git/