2013-10-08 33 views
5

我正試圖從我的計算機中導入現有的密鑰對以在EC2中使用。但是,一旦我點擊「是,導入」,亞馬遜顯示的指紋與ssh -lf顯示的指紋對於相同的密鑰不匹配。我已驗證它們是同一個密鑰,試圖重新導入密鑰等。常見做法似乎是使用「創建密鑰對」部分,但我寧願使用通常的SSH密鑰對。我也無法使用SSH登錄設置爲使用此密鑰對的實例(我獲得Permission denied (publickey).)。將密鑰對導入Amazon AWS - 指紋錯誤?

有沒有人遇到過這樣的AWS問題?對這個問題可能有什麼看法?

+1

我在ServerFault上添加了更詳細的答案:http://serverfault.com/q/603982/102814 –

回答

7

指紋差異似乎有an answer in the AWS forums。我在這裏粘貼內容爲後人:

你好,

我與我的同事們討論,看起來是從 我們的最終限制在不同的格式提供密鑰對。您會注意到亞馬遜生成的密鑰對和導入密鑰 對的不同長度。在亞馬遜生成的密鑰對的情況下,私鑰的指紋爲 ,而如果您使用導入密鑰對,則指紋 用於您的公鑰。亞馬遜沒有保留產生 私人密鑰的副本,但EC2命令行工具確實提供了一種以 重現SSH2 MD5指紋:

EC2指紋鑰匙./testpair1-private.pem 61: 26:cc:7d:2a:2c:a4:e9:fb:86:ca:ef:57:d6:68:f8:24:bc:59:cd

這應該與您在控制檯中看到的相符爲您創建密鑰的區域,例如US-West-1(北加利福尼亞州)。 不幸的是,ec2-fingerprint-key命令行工具沒有 指紋公鑰。如果您在另一個 區域(如US-East-1)中導入公鑰,則Web AWS控制檯將僅顯示公鑰的 指紋。

其次,AWS控制檯應更清楚對什麼類型 指紋它顯示,這是(也稱爲SSH2格式)爲「在RFC4716的第4條指明MD5公鑰指紋作爲 」的 這裏提到:

http://docs.amazonwebservices.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-ImportKeyPair.html

我們已經投入爲基於Web的AWS控制檯 功能請求,支持更常見的OpenSSH格式。不幸的是我不是 能夠找到任何用戶友好的工具來生成SSH2/RFC4716 格式的指紋,但我確實發現您可以在您的原始區域中輸入相同的 公鑰(名稱如「Test2」)和 匹配區域之間顯示的指紋。

(重點礦)

正如他提到,我也沒能找到任何工具來生成SSH2 /格式RFC4716指紋。這至少解決了不匹配指紋的奧祕(至少如果我們假設ssh-keygen -lf以「更常見的OpenSSH格式」給出輸出,如果此假設錯誤,請糾正我)。當我嘗試使用ssh時,我仍然收到Permission denied (publickey),但我會認爲它現在不是實際的密鑰不匹配,並且正在探索其他途徑。

+0

有趣的答案,謝謝。順便說一句,你是如何解決這個問題的(我認爲你現在應該可以)? –

+0

對於我自己,它忘記指定'admin @'...> _ < – phyzome

+0

老問題,但我今天有同樣的權限被拒絕(publickey),並且在我意識到之前將我的頭撞了近半個小時我將創建一個Amazon Linux映像而不是Ubuntu映像,所以默認用戶是'ec2-user'而不是'ubuntu'。 – SomeCallMeTim