我有Ubuntu 10.04,最近升级到11.10。其他SSH密钥停止工作。我有密钥bitbucket
和github
,我在网站上有。如何告诉SSH使用Bitbucket的一个特定键和GitHub的另一个?
所以,我有一个配置:
Host bitbucket
HostName 207.223.240.182
User hg
IdentityFile ~/.ssh/bitbucket
当我拨打ssh bitbucket
时,ssh使用密钥成功登录并被踢出。但是,当我尝试hg pull
时,我看到“远程hg没有回复”。并且没有问密码。
可以做些什么?
答案 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