如何使用BitBucket和GitHub的特殊SSH密钥进行推/拉?

时间:2011-11-17 17:31:00

标签: git mercurial ssh github bitbucket

我有Ubuntu 10.04,最近升级到11.10。其他SSH密钥停止工作。我有密钥bitbucketgithub,我在网站上有。如何告诉SSH使用Bitbucket的一个特定键和GitHub的另一个?

所以,我有一个配置:

Host bitbucket
HostName 207.223.240.182
User hg
IdentityFile ~/.ssh/bitbucket

当我拨打ssh bitbucket时,ssh使用密钥成功登录并被踢出。但是,当我尝试hg pull时,我看到“远程hg没有回复”。并且没有问密码。

可以做些什么?

2 个答案:

答案 0 :(得分:10)

关于为什么在问题中发布的配置不起作用但你的答案是:

的小解释

当您致电ssh bitbucket时,ssh会在您的配置文件中查找名为bitbucket的主机,该主机使用Host关键字定义。然后,使用HostName关键字,您可以定义要使用的真实主机名。在您的情况下,您将bitbucket定义为IP 207.233.240.182的别名,我假设它是bitbucket.org

的别名

它不适用于您的mercurial命令,因为远程服务器可能定义为bitbucket.org而不是别名bitbucket。将配置文件更改为答案中建议的配置文件后,ssh可以有效地将远程服务器与主机名匹配,一切正常!

仅供参考,您还可以使用通配符进行模式匹配,例如:

Host bitbucket.*
    HostName 207.223.240.182
    User hg
    IdentityFile ~/.ssh/bitbucket

也可以,因为在查看配置时,SSH会将*替换为其他任何内容。

答案 1 :(得分:1)

我没有努力!关键在于现在。解决方案是将.org添加到主机:

Host bitbucket.org
User hg
IdentityFile ~/.ssh/bitbucket2