EC2 Linux インスタンスに接続するにはどのような方法を使用できますか?
Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスへの接続に使用できるオプションを知りたいです。
簡単な説明
Amazon EC2 Linux インスタンスに接続するには 4 つの方法があります。
- セキュアシェル (SSH)
- Linux インスタンス用 EC2 シリアルコンソール
- Session Manager (AWS System Manager の機能)
- Amazon EC2 インスタンス接続
解決方法
SSH
制限:
- SSH には接続ロギングと監査が組み込まれていません。
- AWS は、SSH による認証用に 1 つのキーペアを各 EC2 インスタンスにデプロイします。
- キーペアを紛失した場合、それを再生成することはできません。詳細については、「最初の起動後に SSH キーペアを紛失した場合、Amazon EC2 インスタンスに接続するにはどうすればよいですか?」を参照してください。
重要:](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html#ssh-prereqs)インスタンスに接続する前に[、すべての前提条件を満たしていることを確認してください。
方法 1: ターミナルウィンドウを使う
ターミナルウィンドウ (Linux または macOS) を開き、SSH コマンドを実行してインスタンスに接続します。
パブリックドメイン名を使用する:
ssh -i /path/key-pair-name.pem instance-user-name@instance-public-dns-name
パブリック IPv4 アドレスを使用する:
ssh -i /path/key-pair-name.pem instance-user-name@instance-public-IPv4-address
パブリック IPv6 アドレスを使用する:
ssh -i /path/key-pair-name.pem instance-user-name@instance-IPv6-address
詳細については、「SSH を使用して Linux インスタンスに接続する」を参照してください。
方法 2: Windows から OpenSSH を使う
1. PowerShell を使用して Windows 用 OpenSSH をインストールするには、次のコマンドを実行します。
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
**注:**OpenSSH をインストールするには、管理者として PowerShell を実行する必要があります。
2. SSH コマンドを実行してインスタンスに接続します。
パブリックドメイン名を使用する:
ssh -i /path/key-pair-name.pem instance-user-name@instance-public-dns-name
パブリック IPv4 アドレスを使用する:
ssh -i /path/key-pair-name.pem instance-user-name@instance-public-IPv4-address
パブリック IPv6 アドレスを使用する:
ssh -i /path/key-pair-name.pem instance-user-name@instance-IPv6-address
方法 3: Windows から PuTTY を使う
- PuTTYgen を使用してプライベートキーを変換します。
2. PuTTY を使用してインスタンスに接続します。
3. PuTTY を起動します。
-
[Category] (カテゴリ) で [Session] (セッション) を選択します。
-
[Host Name] (ホスト名) に、ユーザー名とホスト名の組み合わせを入力します。
パブリックドメイン名を使用する:
instance-user-name@instance-public-dns-name
パブリック IPv4 アドレスを使用する:
instance-user-name@instance-IPv4-address
パブリック IPv6 アドレスを使用する:
instance-user-name@instance-IPv6-address
6. [Port] (ポート) の値が SSH サービスポート (デフォルトは 22) と一致していることを確認します。
- [Connection type] (接続タイプ) で [SSH] を選択します。
8. [Category] (カテゴリ) で [Connection] (接続)、[SSH] の順に展開し、[Auth] (認証) を選択します。
9. [Browse] (参照) を選択し、キーペア用に生成した .ppk ファイルを選択します。
- [Open] (開く) を選択します。
**注:**初めてインスタンスに接続するときは、リモートホストを信頼できることを確認する必要があります。
Linux インスタンス用 EC2 シリアルコンソール
EC2 シリアルコンソールは、EC2 インスタンスへのシリアル接続を確立し、ブートとネットワーク接続の問題のトラブルシューティングを可能にします。
制限:
- 1 つのインスタンスでサポートされるアクティブなシリアルコンソール接続は 1 つだけです。
- セッションの間には少なくとも 30 秒の間隔が必要です。
- EC2 シリアルコンソールセッション中は、インスタンスのスループットがわずかに低下します。
- Xen インスタンスはサポートされていません。
- EC2 シリアルコンソールは、Wavelength ゾーンと AWS Outposts ではサポートされていません。
- EC2 シリアルコンソールは、特定の AWS リージョンでのみサポートされています。
**重要:**E2 シリアルコンソールを使用して接続する前に、前提条件をすべて満たしていることを確認してください。
方法 1: ブラウザベースのクライアントを使用する
1. EC2 コンソールを開きます。
-
[Instances] (インスタンス) を選択します。
-
インスタンスを選択し、[Action] (アクション)、[Monitor and troubleshoot] (監視とトラブルシューティング)、[EC2 Serial Console] (EC2 シリアルコンソール)、[Connect] (接続) の順に選択します。または、インスタンスを選択し、[Connect] (接続)、[EC2 Serial Console] (EC2 シリアルコンソール)、[Connect] (接続) を選択します。
-
ブラウザ内のターミナルウィンドウが開いたら、Enter キーを押します。ログインプロンプトが表示されたら、パスワードベースのユーザーのユーザー名を入力し、Enter キーを押します。
パスワードプロンプトで、パスワードを入力し、Enter キーを押します。
方法 2: SSH を使用する
1. SSH パブリックキーをインスタンスにプッシュして、シリアルコンソールセッションを開始します。
aws ec2-instance-connect send-serial-console-ssh-public-key \ --instance-id i-0123456789EXAMPLE \ --serial-port 0 \ --ssh-public-key file://my_key.pub \ --region us-east-1
**注:**前述のコマンド例では、必ず file:// プレフィックスを SSH パブリックキーパスに追加してください。
2. プライベートキーを使用してシリアルコンソールに接続します。
ssh -i my_key i-0123456789EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws
3. (オプション) フィンガープリントを確認します。シリアルコンソールに初めて接続したときに表示されるフィンガープリントと、そのリージョン固有のEC2シリアルコンソールフィンガープリントを比較してください。
- プロンプトが戻ったら、パスワードベースのユーザーのユーザー名を入力し、Enter キーを押します。
5. パスワードプロンプトで、パスワードを入力し、Enter キーを押します。
Session Manager
Session Manager を使用すると、受信ポートを開いたり、SSH キーを管理したりすることなく、マネージドノードに安全にアクセスできます。AWS CloudTrail イベントを使用して Session Manager セッションを監査し、AWS ID およびアクセス管理 (IAM) ポリシーを使用してセッションを制御できます。
制限:
- Session Manager ではファイルを転送できません。
**注:**代わりに、S3 バケットと AWS CLI を使用してデータを交換してください。 - ポート転送または SSH 経由で接続する Session Manager セッションでは、ロギングは利用できません。これは、SSH はすべてのセッションデータを暗号化し、Session Manager は SSH 接続のトンネルとしてのみ機能するためです。
- AWS Systems Manager は、すべてのオペレーティングシステム (OS) でサポートされているわけではありません。詳細については、「サポート対象のオペレーティングシステム」を参照してください。
**重要:**Session Manager を使用してインスタンスに接続する前に、前提条件をすべて満たしていることを確認してください。
Systems Manager で使用する VPC エンドポイントを作成するのがベストプラクティスです。
- Systems Manager コンソールを開きます。
- [Session Manager] を選択します。
- [Start session] (セッションの開始) を選択します。
- (オプション) [Reason for session] (セッションの理由) フィールドにセッションの説明を入力します。
- 接続するマネージドノードを選択し、[Start session] (セッションの開始) を選択してセッションをすぐに起動します。
-または-
(オプション) カスタムドキュメントを使用して、期間、暗号化、ロギングなどのセッション設定を行います。
[Session options] (セッションオプション) で [次へ] を選択します。
[Session document] (セッションドキュメント) で、セッションの開始時に実行するドキュメントを選択します。ドキュメントでランタイムパラメータをサポートしている場合、各パラメータフィールドに 1 つ以上の値をカンマで区切って入力できます。
[次へ] を選択します。
[Start session] (セッションの開始) を選択します。
EC2 コンソールを使用して接続する
- EC2 コンソールを開きます。
- [Instances] (インスタンス) を選択します。
- インスタンスを選択し、[Connect] (接続) を選択します。
- [Connection method] (接続方法) で、[Session Manager] を選択します。
- [接続] を選択します。
AWS CLI を使用して接続する
注:
- AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、最新バージョンの AWS CLI を使用していることを確認してください。
- AWS CLI を使用してセッションコマンドを実行するには、ローカルマシンに Session Manager プラグインをインストールする必要があります。
以下のコマンドを実行します。
aws ssm start-session --target instance-id
Session Manager 経由の SSH を使用して接続する
必要条件:
- SSH 接続をサポートするようにターゲットマネージドインスタンスを設定する必要があります。
- 実行している AWS Systems Manager エージェント (AWS SSM エージェント) のバージョンは 2.3.672.0 以降である必要があります。
- プライバシー強化メール (PEM) 証明書にアクセスでき、それに関連付けられているアカウントを使用して接続できます。たとえば、Ubuntu マネージドノード用のユーザーアカウント「ubuntu」などです。
SSH を使用してセッションを開始するには、次のコマンドを実行します。
ssh -i /path/my-key-pair.pem username@instance-id,/code>
Amazon EC2 インスタンス接続
EC2 インスタンス接続により、SSH 経由でインスタンスに安全にアクセスできます。EC2 インスタンス接続には、SSH キーを共有せずにインスタンスに接続するための複数のオプションが用意されています。
制限:
- EC2 インスタンス接続は Linux ディストリビューションを限定的にサポートしています。
- AuthorizedKeysCommand と AuthorizedKeysCommandUser の設定は、まだ未設定の必要があります。
- EC2 インスタンス接続はローカルゾーンではサポートされていません。
- Amazon EC2 コンソールを使用する場合、接続にはパブリック IPv4 アドレスが必須です。
- EC2 インスタンス接続は、IPv6 アドレスを使用した接続をサポートしていません。
**重要:**Amazon EC2 インスタンス接続を使用する前に、すべての前提条件を満たしていることを確認してください。
**Amazon EC2 コンソールを使用して接続する (IPv4 パブリックアドレスのインスタンスのみ) **
1. Amazon EC2 コンソールを開きます。
2. ナビゲーションペインで [インスタンス] を選択します。
-
インスタンスを選択し、[Connect] (接続) を選択します。
-
[EC2 Instance Connect] (EC2 インスタンス接続) を選択します。
-
ユーザー名を確認し、[Connect] (接続) を選択してターミナルウィンドウを開きます。
固有のキーと SSH クライアントを使用して接続する
**注:**接続するインスタンスに EC2 Instance Connect CLI をインストールする必要があります。
- 次のコマンドを実行して、新しい SSH プライベートキーおよびパブリックキーを生成します。
ssh-keygen -t rsa -f my_key
- SSH パブリックキーをインスタンスにプッシュします。
Amazon Linux の場合:
aws ec2-instance-connect send-ssh-public-key \ --region us-west-2 \ --instance-id i-0123456789Amzn \ --instance-os-user ec2-user \ --ssh-public-key file://my_key.pub
Ubuntu の場合:
aws ec2-instance-connect send-ssh-public-key \ --region us-west-2 \ --instance-id i-0123456789Ubuntu \ --instance-os-user ubuntu\ --ssh-public-key file://my_key.pub
**注:**前述のコマンド例では、必ず file:// プレフィックスを SSH パブリックキーパスに追加してください。
- プライベートキーを使用してインスタンスに接続します。
Amazon Linux の場合:
ssh -o "IdentitiesOnly=yes" -i my_key ec2-user@instance-public-dns-name
Ubuntu の場合:
ssh -o "IdentitiesOnly=yes" -i my_key ubuntu@instance-public-dns-name
**注:**標準の Amazon EC2 インスタンスのパブリック DNS 名は、**ec2-12-34-56-78.us-west-2.compute.amazonaws.com に似ています。**名前は、AWS ドメイン、サービス (この例ではコンピューティング)、リージョン、およびパブリック IP アドレスの形式で構成されます。
EC2 インスタンス CLI を使用して接続する
Amazon Linux の場合:
$mssh i-0123456789Amzn
Ubuntu の場合:
$mssh ubuntu@i-0123456789Ubuntu
関連するコンテンツ
- 質問済み 2ヶ月前lg...
- 質問済み 9ヶ月前lg...
- 質問済み 2ヶ月前lg...
- 承認された回答質問済み 8ヶ月前lg...
- AWS公式更新しました 1年前
- AWS公式更新しました 10ヶ月前