Amazon Lightsailは3種類のSSH鍵を利用できます

2019.02.04

AWSが提供するVPSサービス、Amazon LightsailのLinux系インスタンスへは、外部から SSH 接続できます。 Amazon Lightsailで利用可能な3種類のSSH鍵を確認してみます。

鍵の種類

Amazon Lightsail で利用可能なSSH鍵は次の3種類があります。

鍵管理の種類 方法 鍵の作成タイミング 鍵の作成者 秘密鍵のダウンロード 削除
デフォルト デフォルトで作成されるSSH鍵を利用 リージョンで初めてのインスタンスを作成 AWS いつでも可能 不可
新規作成 新規にLightSail用SSH鍵を作成 ユーザーが鍵を新規作成 AWS 新規作成時のみ可能 可能
アップロード ユーザーが公開鍵をLightSailにアップロード ユーザーが鍵をアップロード ユーザー AWSは秘密鍵を保持していないため、不可 可能

各鍵の違いを確認します。

デフォルト鍵

EC2のキーペアには存在ない Amazon Lightsailにユニークな鍵です。

デフォルト鍵は、リージョンで初めての Lightsailインスタンスを作成すると一緒に作成されます。

この鍵は、管理コンソールへアクセス可能、または、APIが利用可能な場合、いつでもダウンロード可能です。 このカジュアルさを便利と思う人とユルイと思う人がいるでしょう。

ユーザーがSSH鍵を新規作成・アップロードしなければ、Lightsailインスタンスにはこのデフォルト鍵が利用されます。

新規作成

EC2キーペアの新規作成と同じです。

新規にSSH鍵を作成します。

新規作成時にのみ秘密鍵をダウンロード可能です。

アップロード

EC2キーペアのアップロードと同じです。

ユーザーが作成したSSH鍵の公開鍵をアップロードします。

例えば、Lightsailインスタンスだけを開発ベンダーに開放したい時は、開発者から公開鍵を受領すれば、セットアップできます。 秘密鍵の共有は不要です。

鍵の作成方法

Lightsail 用鍵(新規・アップロード)は

  • インスタンス作成画面
  • SSH管理画面

から作成可能です。

インスタンス作成時

Lightsailインスタンス作成時の OPTIONAL エリアで「Change SSH key pair」をクリックします。

  • 新規鍵の作成
  • 公開鍵のアップロード

エリアが表示されます。

SSH 鍵管理画面

Lightsail管理画面の Account → SSH Keys から鍵を作成可能です。

インスタンスで利用する鍵の指定

Lightsailインスタンス作成時の OPTIONAL エリアに、インスタンスが利用する鍵が表示されます。

選択済みとは異なる鍵を利用したい場合、「Change SSH key pair」をクリックし、利用したい鍵を選択します。

SSH鍵のフィンガープリントの確認

Lightsail管理画面の Account → SSH Keys では登録済み鍵の一覧が表示されます。

EC2のキーペアと異なり、鍵のフィンガープリントが表示されていないため、秘密鍵とのマッピングに悩むかもしれません。

API 経由で登録した鍵のフィンガープリントを確認できます。

$ aws lightsail get-key-pairs
{
    "keyPairs": [
        {
            "name": "CreateNew",
            "arn": "arn:aws:lightsail:eu-central-1:123456789012:KeyPair/d49f973e-3113-4a59-bbad-9ddadd39bb57",
            "supportCode": "174337882580/CreateNew",
            "createdAt": 1549216127.026,
            "location": {
                "availabilityZone": "all",
                "regionName": "eu-central-1"
            },
            "resourceType": "KeyPair",
            "tags": [],
            "fingerprint": "e5:ea:fc:10:7b:b3:b5:68:9f:fa:54:d0:6b:36:aa:30"
        },
        {
            "name": "UploadNew",
            "arn": "arn:aws:lightsail:eu-central-1:123456789012:KeyPair/f37ef43b-769b-4586-aaa2-74b6519b6a16",
            "supportCode": "174337882580/UploadNew",
            "createdAt": 1549215671.761,
            "location": {
                "availabilityZone": "all",
                "regionName": "eu-central-1"
            },
            "resourceType": "KeyPair",
            "tags": [],
            "fingerprint": "f4:7a:54:08:9f:2e:ef:75:09:be:8c:08:cb:a1:3a:1f:4b:72:4f:c1"
        }
    ]
}

get-key-paris/get-key-pair API でデフォルト鍵の情報は取得できない点にご注意ください。

秘密鍵(path_to_private_key)のフィンガープリントを確認します。

新規作成した鍵の場合

$ openssl pkcs8 -in path_to_private_key -inform PEM -outform DER -topk8 -nocrypt | openssl sha1 -c
f4:7a:54:08:9f:2e:ef:75:09:be:8c:08:cb:a1:3a:1f:4b:72:4f:c1

公開鍵をアップロードした場合

フィンガープリントの生成で利用する鍵は公開鍵ではなく秘密鍵です。

$ openssl rsa -in path_to_private_key -pubout -outform DER | openssl md5 -c
writing RSA key
e5:ea:fc:10:7b:b3:b5:68:9f:fa:54:d0:6b:36:aa:30

最後に

Amazon Lightsailインスタンスで利用可能なSSH鍵は3種類あります。ユースケースに合わせて使い分けてください。

また、Lightsailの管理コンソールからは、SSH秘密鍵を利用しない、ブラウザベースのターミナル操作も可能です。必要に応じてご活用ください。

参考