2012-12-09 34 views
24

新しいAmazon EC2サーバーを作成すると、いつものようにsshを使用して接続します。ECDSAを使用したAmazon AWS EC2サーバーのSSH指紋認証?

$ ssh myserver 
The authenticity of host 'ec2-12-34-567-890.compute-1.amazonaws.com (12.34.567.890)'  can't be established. 
ECDSA key fingerprint is 31:66:15:d2:19:41:2b:09:8a:8f:9f:bd:de:c6:ff:07. 
Are you sure you want to continue connecting (yes/no)? 

どのように私は私がサインインする前に指紋を確認します:

私は典型的な警告を参照してください?

理想的には、システムの再起動後にログがフラッシュされるか、大量の出力を生成する大規模なシステムインストールスクリプト中にログがフラッシュされる可能性があります。作成時に追跡されなかったキーを持つ古いシステムです。

+0

1つの方法は、既知の指紋で独自のキーを使用することです(http://serverfault.com/a/581458/86472を参照)。インスタンスを制御して(つまりシナリオの計画を立てる、つまりインスタンスをセットアップする)、起動時に指紋を取得するのは簡単です。あなたが望むことはあなた次第です(例えば、S3、Route53、Cloudwatchに公開し、 、など)。最も簡単なことの1つは、(コンソールから表示できる)インスタンス上のタグを更新する毎時cronジョブを実行することです。 – cyberx86

答えて

24

joelparkerhendersonの答えはカバー@としてホストキーが生成されるとき、あなたは(cloud-initスクリプトによって)、サーバの初期起動ログからホストキーの指紋を収集することができます。

enter image description here

あなたが鍵を収集するために失敗した場合この方法で、プライベートAmazonネットワーク内の別の信頼できるインスタンスからターゲットインスタンスに接続することでそれらを得ることができるため、中間者の攻撃から自分自身を安全に保ちます。信頼されたインスタンスの端末(あなたがのために指紋を知っている1)上で、あなたは指紋(172.33.31.199がプライベートIPである)を収集するために、次のコマンドを使用することができます

:あなたは別のインスタンスを持っていない場合

$ ssh-keyscan 172.33.31.199 > ec2key 
$ ssh-keygen -l -f ec2key 
2048 02:fc:a5:ff:97:dd:41:63:bb:88:8b:29:4e:75:23:ed 172.33.31.199 (RSA) 
256 ea:bc:4d:5f:ae:00:48:75:45:ba:97:43:fe:e1:a3:e9 172.33.31.199 (ECDSA) 

を、あなたが知っている指紋は、キーを収集する目的のためだけに新しい一時インスタンスを作成します。まず、新しい初期インスタンスのキーを、その初期開始ログを使用して検索します。パブリックネットワークから一時インスタンスに接続します。プライベートAmazonネットワーク経由で、一時インスタンスから接続することで、ターゲットインスタンスのキーを収集します。その後、一時インスタンスを破棄することができます。

Guide for connecting to EC2 instance safely using WinSCPを用意しました。

+1

ちょうどこの答えを(感謝!)使用して、私の最初の試行(t2インスタンスで) 'ssh-keyscan'で何も生成されませんでした。 t2sがVPCに投入され、Amazonのプライベートネットワークにアクセスするために非t2インスタンスを使用しなければならないことがわかりました。 –

13

ここでは、EC2システムの作成中に私に役立つ2つのソリューションがあります。

解決方法1:https://console.aws.amazon.com

  • をタップし、 "EC2" リンクに

    • ゴーAmazon EC2のダッシュボードを使用してください。コンソールで、左側の列
    • あなたは、「アクション」の選択ボタンをタップして、「システムログを取得する」を選択します
    • たいインスタンス名をタップします(別名「コンソール出力」)
    • をタップし、「インスタンス」出力、あなたは鍵が生成されて表示されるはずです

    解決方法2:

    あなたはawsコマンドを使用することができAWS EC2のコマンドラインを使用しますか、 ec2-get-console-outputコマンド。どちらもAmazonからダウンロードできます。

    あなたのEC2秘密鍵のPEMファイル、証明書のPEMファイル、地域、およびインスタンスを使用するには:awsツール

    ec2: -----BEGIN SSH HOST KEY FINGERPRINTS----- 
    ec2: 1024 e0:79:1e:ba:2e:3c:71:87:2c:f5:62:2b:0d:1b:6d:7b [email protected] (DSA) 
    ec2: 256 31:66:15:d2:19:41:2b:09:8a:8f:9f:bd:de:c6:ff:07 [email protected] (ECDSA) 
    ec2: 2048 ce:ec:3b:d3:34:3f:f3:45:76:81:9e:76:7a:d9:f5:e8 [email protected] (RSA) 
    ec2: -----END SSH HOST KEY FINGERPRINTS----- 
    

    :出力は、このようなSSHホストキーのフィンガープリントを示し

    ec2-get-console-output \ 
        --private-key pk-ABCDEF1234567890.pem \ 
        --cert cert-ABCDEF1234567890.pem \ 
        --region us-east-1c \ 
        i-e706689a 
    

    を同様に動作します。

    注:これらのソリューションは、作成時またはコンソールログを取得できるときにのみ機能します。いつでも動作するより広範なソリューションについては、Martinの答えをご覧ください。

  • +1

    これは、ログにキー生成が含まれている場合、インスタンスの最初の実行時にのみ機能します。インスタンスを再起動すると、もう指紋を見つけることができません。その他の方法で? –

    +1

    @Martin良い点!理想的にはAmazonは指紋をEC2ダッシュボードの列として追加することができます。私は人々に助けを奨励するために、この質問に賞金を追加します。 – joelparkerhenderson

    +1

    ありがとう、これはすばらしい助けでした。 AWSは私の最初のenv設定で、e2cダッシュでキーを取得できるようになったのはずっと混乱していませんでした。 – ouonomos

    関連する問題