2012-04-18 31 views
20

我可以在所有地區使用相同的密鑰對文件嗎?我想保持ssh訪問儘可能簡單。所有區域的單個密鑰對

我已經爲每個地區設置了一個文件。我試圖在不同地區上傳相同的文件,但並未按預期工作。

回答

17

這是不可能的,使用時Amazon EC2生成密鑰對,但同時被使用自己的密鑰對(S)的方式提供支持,看到介紹後New Amazon EC2 Feature: Bring Your Own Keypair

您現在可以導入自己的RSA密鑰對(或公開的一半,準確地說是 )與您的Amazon EC2實例一起使用。

你爲什麼要這麼做?這裏有幾個原因:

  1. 信任 - 通過導入您自己的密鑰對,您可以確保您有 完全控制您的密鑰。
  2. 安全性 - 您可以確信,您的私鑰從未通過網絡傳輸。
  3. 管理多個區域 - 您可以跨多個AWS區域使用相同的公鑰。[重點煤礦]

這種做法是相當有益/的確方便 - 我使用它相當長的一段已經,並且它確實已經緩和與EC2相當的工作。

埃裏克·哈蒙德提供了在他的文章Uploading Personal ssh Keys to Amazon EC2更多的細節和一個簡短的教程:

亞馬遜最近推出上傳自己的ssh公鑰 到EC2的能力,以便它可以傳遞到新的實例時,他們正在啓動 。在此之前,您總是必須使用Amazon生成的 的ssh密鑰對。

因此,我建議遵循他關於實現這一點所需的(少數和簡單)步驟的文章。

+0

我一直在使用一個公共密鑰對。我創建了一個沒有任何密碼的密鑰,我發現它只能在創建它的Ubuntu PC上運行。它似乎並不適用於任何其他電腦,而其他通過網絡界面創建的關鍵字並非如此。我需要使用不同的機器連接到AWS實例。 – shantanuo 2012-04-27 07:31:51

+0

@shantanuo:這很奇怪,而不是SSH密鑰通常應該工作的方式(因此我沒有這個問題,即我的密鑰是按預期方式移植的)。當然,您還需要將私鑰複製到其他所有PC上,但這與AWS生成的密鑰沒有區別。有一點需要注意,可能是關鍵格式,例如,您需要將在Ubuntu上生成的密鑰轉換爲Putty使用的格式,以防您想在Windows上使用它們(請參閱[例如[在您的OpenSSH私鑰中使用膩子](http://meinit.nl/using-your-openssh-private-key-inputty)的說明)。 – 2012-04-27 09:38:41

+0

我猜這是在你展開根分區時發生的,如本博客文章所述:http://oksoft.blogspot.in/2012/04/expand-root-ebs-volume.html – shantanuo 2012-05-07 08:48:55

8

如果你可以導入自己的RSA公鑰,那麼你就可以分享跨區域的亞馬遜生成的密鑰:

  1. 使用你要共享的密鑰,登錄到一個實例在它是區域產生。
  2. 開放的〜/ .ssh/authorized_keys中
  3. 尋找與你想分享(該行的末尾應顯示當你產生它您指定的密鑰對名稱)
  4. 將所有排隊的鍵線到密鑰對名稱的第一個字符。應該是382個字符。
  5. 將複製的數據保存到本地文件中(例如,保存到您啓動SSH會話的機器)。
  6. 登錄到EC2控制檯並切換到您要共享密鑰的區域。
  7. 選擇「密鑰對」管理
  8. 單擊「導入密鑰對」並將其指向在步驟5創建的文件。您可能想要給該密鑰對上相同的名稱,導入它的形式。
  9. 使用此密鑰對啓動實例。您應該能夠使用與生成區域相同的私鑰在新區域中登錄實例。
+0

剛剛證實這工作。 (我只有380字節,而不是382--也許你的CRLF在你的末尾,它是可選的?)我發現這兩個區域的密鑰對有不同的指紋,但是到新實例的SSH工作,所以我猜那並不重要! – 2014-08-19 17:37:55

+0

證實了這一點。 – 3z33etm 2017-04-25 19:54:42

3

的AWS生成的密鑰可以被轉移到另一個區域:

  • 登錄到這是與您要轉移的關鍵創建的實例。
  • 安裝EC2-API開發的工具,如果不存在(命令和apt-get安裝的EC2 API工具)

使用此命令

ec2-import-keypair keypair-name --public-key-file ~/.ssh/authorized_keys --region aws-region 

通過上面的步驟,把我調到了AWS創建從新加坡地區到俄勒岡地區的關鍵和相同的關鍵對我來說工作得非常好。

請訪問此鏈接,以及:

https://forums.aws.amazon.com/thread.jspa?threadID=52654

1

您還可以使用aws cli的密鑰對傳送到另一個區域。

aws ec2 import-key-pair --key-name my-key --public-key-material file://~/.ssh/id_rsa.pub --region my-region 

請在GitHub上參閱this issue瞭解更多信息。

2

如果您想在AWS控制檯中創建一個ssh密鑰對並將此密鑰對上傳到其他所有區域。

  1. 在控制檯中創建一個新的ssh密鑰對或使用您已擁有的密鑰對。

  2. 生成從SSH私鑰(PEM>酒吧)一個SSH公鑰

$的ssh - 凱基-y -f的〜/ .ssh/MySSHKeyPair.pem >>的〜/ .ssh/MySSHKeyPair.pub

  1. 將ssh公鑰上傳到所有區域。 (從列表中刪除已經擁有ssh密鑰的區域)

$ for a in us-east-1 us-east-2 us-west-1 us-west-2 ap-south-1 ap -northeast-2 ap-southeast-1 ap-southeast-2 ap-northeast-1 eu-central-1 eu-west-1 eu-west-2; do aws ec2 import-key-pair --key-name MySSHKeyPair --public-key-material file://~/.ssh/MySSHKeyPair.pub --region $ region;完成

  1. 獲取所有區域中所有ssh密鑰對的列表。

$ for a在美國東部1美國東部2美國西部1美國西部2 ap-south-1 ap-northeast-2 ap-southeast-1 ap-southeast-2 ap-northeast-1 eu-central-1 eu-west-1 eu-west-2;做aws ec2 describe-key-pairs --region $ a;完成

相關問題