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

问题描述:

我有Ubuntu 10.04,最近升级到11.10。额外的SSH密钥停止工作。我在网站上有钥匙bitbucketgithub。我怎么能告诉SSH为Bitbucket使用一个特定的密钥,另一个用于GitHub?如何使用特殊的SSH密钥为BitBucket和GitHub推/拉?

所以,我有一个配置:

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

当我打电话ssh bitbucket,SSH成功​​登录与键和被踢出。但是当我尝试hg pull时,我看到“远程hg没有响应”。并且不询问密码。

可以做些什么?

有关为什么张贴在讨论的配置不工作的一些解释,但你的回答呢:

当你调用ssh bitbucket,SSH看起来你的配置文件名为bitbucket的主机,该主机使用Host关键字定义。然后,使用HostName关键字,您可以定义要使用的真实主机名。在你的情况,你定义bitbucket作为IP 207.233.240.182我假设一个别名是一个bitbucket.org

,因为远程服务器可能定义为bitbucket.org,而不是它是不是你善变的命令工作别名bitbucket。将配置文件更改为您的答案中提出的配置文件后,ssh可以有效地将远程服务器与主机名相匹配,一切都很好!

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

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

也将工作,因为在看配置的时候,SSH将与其他任何代替*。

+0

是非常有用的阅读,谢谢! –

我没有努力!关键在于现在。解决方案是增加.org主办:

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

如果您有许多密钥,请考虑添加IdentitiesOnly yes选项。 –