新しいAmazonEC2サーバーを作成するときは、通常どおり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)?
サインインする前に指紋を確認するにはどうすればよいですか?
理想的には、答えは元の作成コンソールログ以外のものに基づいています-システムの再起動後、または大量の出力を生成する大規模なシステムインストールスクリプト中にログがフラッシュされる可能性があるため、または接続が古いシステムへの接続であるため作成時に追跡されなかったキー。
@joelparkerhendersonの回答がカバーしているように、ホストキーが(cloud-init
スクリプトによって)生成されるときに、サーバーの初期開始ログからホストキーのフィンガープリントを収集できます。
この方法でキーを収集できない場合は、プライベートAmazonネットワーク内の別の信頼できるインスタンスからターゲットインスタンスに接続することでキーを取得できるため、man-in-the-middle攻撃から身を守ることができます。
信頼できるインスタンス(フィンガープリントを知っているインスタンス)端末では、次のコマンドを使用してフィンガープリントを収集できます(172.33.31.199
はプライベートIPです)。
$ ssh-keyscan 172.33.31.199 > ec2key
$ ssh-keygen -l -f ec2key
256 SHA256:oZHeiMEPLKetRgd3M5Itgwaqr2zJJH93EvSdx5UoHbQ <ip> (ED25519)
2048 SHA256:8zg105EUFFrPFpVzdfTGsgXnxuSpTiQd85k0uNapUio <ip> (RSA)
256 SHA256:L7UXLw0djE5B9W7ZhvrkYVSTZyi1MEQ2dBaRtpkkUGY <ip> (ECDSA)
フィンガープリントがわかっている別のインスタンスがない場合は、キーを収集するためだけに、新しい一時インスタンスを作成します。最初に、最初の開始ログを使用して、新しい一時インスタンスのキーを見つけます。パブリックネットワークから一時インスタンスに接続します。次に、プライベートAmazonネットワークを介して、一時インスタンスからターゲットインスタンスに接続することにより、ターゲットインスタンスのキーを収集します。その後、一時インスタンスを破棄できます。
準備しました WinSCPを使用してEC2インスタンスに安全に接続するためのガイド 。
EC2システムの作成中に私のために働いた2つのソリューションがあります。
解決策1:AmazonEC2ダッシュボードを使用する
解決策2:AWSEC2コマンドラインを使用する
aws
コマンドまたはec2-get-console-output
コマンドを使用できます。どちらもAmazonからダウンロードできます。
EC2秘密鍵pemファイル、証明書pemファイル、リージョン、インスタンスを使用するには:
ec2-get-console-output \
--private-key pk-ABCDEF1234567890.pem \
--cert cert-ABCDEF1234567890.pem \
--region us-east-1c \
i-e706689a
出力には、次のようなsshホストキーのフィンガープリントが表示されます。
ec2: -----BEGIN SSH Host KEY FINGERPRINTS-----
ec2: 1024 e0:79:1e:ba:2e:3c:71:87:2c:f5:62:2b:0d:1b:6d:7b root@ip-10-243-118-182 (DSA)
ec2: 256 31:66:15:d2:19:41:2b:09:8a:8f:9f:bd:de:c6:ff:07 root@ip-10-243-118-182 (ECDSA)
ec2: 2048 ce:ec:3b:d3:34:3f:f3:45:76:81:9e:76:7a:d9:f5:e8 root@ip-10-243-118-182 (RSA)
ec2: -----END SSH Host KEY FINGERPRINTS-----
aws
ツールも同様に機能します。
注:これらのソリューションは、作成時、またはコンソールログを取得できる場合にのみ機能します。いつでも機能するより広範なソリューションについては、Martinの回答を参照してください。