2011-11-17 118 views
8

我有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沒有響應」。並且不詢問密碼。

可以做些什麼?

回答

10

有關爲什麼張貼在討論的配置不工作的一些解釋,但你的回答呢:

當你調用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

是非常有用的閱讀,謝謝! –

1

我沒有努力!關鍵在於現在。解決方案是增加.org主辦:

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

如果您有許多密鑰,請考慮添加IdentitiesOnly yes選項。 –