2016-01-21 103 views
2

我意外地覆蓋了.ssh/authorized_keys中的條目。 現在我不能再使用我的.pem文件連接到我的EC2實例。 我試圖生成一個新的.pem文件,希望該過程將添加到.ssh/authorized_keys項,但它沒有。我試圖閱讀文檔,但對我來說有點困惑。 有人可以提供一個簡單的解釋/說明,這是非常感謝。Amazon EC2:如何恢復〜/ .ssh/authorized_keys文件?

+0

是否有任何活動的ssh會話到您的實例? – helloV

+0

沒有活動的ssh會話.. :( –

+0

)你運氣不好。有一個繁瑣的過程:分離根卷,附加到另一個實例,修復你的文件,然後重新連接它等,仍然可以挽救你的實例,但需要一些工作 – helloV

回答

3

如果實例基於EBS,你可以做到以下幾點:

  1. 獲取authorized_keys文件準備的正確副本。從另一個實例中獲取它,或者從整個布料中重建它,或者從快照中抓取它,或者使用新的pem文件或其他任何東西。 (不要終止它)。這一步是不可避免的。如果你不能阻止實例,因爲它運行的是重要的東西,你就是SOL。

  2. 從停止的實例中分離根卷。它應該是類似於/dev/sda1。一定要給它一個名字,以便您可以在卷列表中找到它。

  3. 將它附加到另一個安裝點的不同實例,例如/dev/sdp

  4. 將該卷掛載到該實例的tmpdir中。用mkdir /tmp/myrootvol && mount /dev/xvdp /tmp/myrootvol說。請注意,設備名稱會根據您的Linux版本而有所不同(如果您使用的是Linux)。許多舊版本將使用不同的命名法。

  5. 在這一點上,你已經有一個文件系統,一個根卷,安裝在/tmp/myrootvol。修復authorized_keys文件,然後卸載設備,並分離音量。

  6. 將卷重新掛接到原始實例/dev/sda1或其最初附加的任何設備名稱。

  7. 啓動該實例備份。

你走了。您將擁有可訪問的EC2實例。但哇,這是一種痛苦,不是嗎?

+0

我堅持在第4步,不知道如何SSH裏面,因爲它仍然給第5步權限被拒絕(公鑰) – Hoan

+0

,我不得不掛載/ dev/xvdp和分區號,所以/ dev/xvdp1 ..因爲我無法安裝啓動分區 – chdev77