AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
Amazon EC2 Linux インスタンスに SSH アクセスを持つ新しいユーザーアカウントを追加する方法を教えてください。
SSH を使用して Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスに接続できる新しいユーザーアカウントを追加したいと考えています。
簡単な説明
すべての Amazon EC2 Linux インスタンスは、インスタンスへの管理アクセス権を有するデフォルトのシステムユーザーアカウントで起動します。複数のユーザーがインスタンスにアクセスする必要がある場合は、ユーザーごとに個別のアカウントを使用するのがセキュリティ上のベストプラクティスです。
cloud-init とユーザーデータを使用すれば、これらのステップを迅速に行うことができます。詳細については、「cloud-init とユーザーデータを使用して、SSH アクセスが可能な新しいユーザーアカウントを EC2 インスタンスに追加するにはどういすればいいですか?」を参照してください。
解決策
新しいユーザーアカウントのキーペアを作成する
- 新しいユーザー用にキーペアを作成するか、既存のキーペアを使用してください。
- コマンドラインを使用して独自のキーペアを作成する場合は、create-key-pair または New-EC2KeyPair コマンドレットに記載されているキータイプとビット長に関する推奨事項に従ってください。
- サードパーティのツールを使用して独自のキーペアを作成する場合は、キーがガイドラインと一致していることを確認してください。詳細については、「サードパーティツールを使用してキーペアを作成し、パブリックキーを Amazon EC2 にインポートする」を参照してください。
**Amazon EC2 コンソールを使用してキーペアを作成する **
-
Amazon EC2 コンソールを開きます。
-
[ネットワークとセキュリティ]、[キーペア] を選択します。
-
[キーペアを作成] を選択します。
-
[名前] に、キーペアの分かりやすい名前を入力します。Amazon EC2 は、パブリックキーをキー名として指定した名前に関連付けます。キー名には、先頭または末尾にスペースを入れずに、最大 255 文字の ASCII 文字を使用できます。
-
[キーペアタイプ] で、[RSA] と [ED25519] を選択します。
-
[プライベートキーのファイル形式] で、プライベートキーを保存する形式を選択します。[pem] を選択して、OpenSSH で使用できる形式でプライベートキーを保存します。[ppk] を選択して、PuTTY で使用できる形式でプライベートキーを保存します。
-
公開鍵にタグを追加するには、[タグを追加] を選択して、タグの鍵と値を入力します。タグごとに同じ手順を繰り返します。
-
[キーペアを作成] を選択します。
-
プライベートキーファイルは自動的にダウンロードされます。ベースファイル名は、キーペアの名前として指定した名前です。ファイル名の拡張子は、選択したファイル形式によって決まります。プライベートキーファイルは安全な場所に保存します。
-
macOS または Linux コンピューターの SSH クライアントを使用して Linux インスタンスに接続する場合は、次のコマンドを実行します。
chmod 400 key-pair-name.pem
前述のコマンドは、プライベートキーファイルの権限を設定して、自分だけが読み取れるようにします。これらの権限を設定しないと、このキーペアを使用してインスタンスに接続することはできません。詳細については、「エラー: 保護されていないプライベートキーファイルです」を参照してください。
AWS コマンドラインインターフェイス (AWS CLI) を使用してキーペアを作成する
注: AWS CLI コマンドの実行中にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください。
- create-key-pair コマンドを使用してキーペアを生成し、プライベートキーを .pem ファイルに保存します。
--key-name には、パブリックキーの名前を指定します。名前には最大 255 文字の ASCII 文字を使用できます。
--key-type には、rsa または ed25519 を指定してください。--key-type パラメータを含めない場合は、rsa キーがデフォルトで作成されます。ED25519 キーは Windows インスタンスではサポートされていません。
--key-format には、pem または ppk を指定します。--key-format パラメータを指定しない場合、pem ファイルがデフォルトで作成されます。
--query "KeyMaterial" で、プライベートキーマテリアルが出力に出力されます。
--output text > my-key-pair.pem は、プライベートキーの内容を指定された拡張子の付いたファイルに保存します。拡張子は .pem でも .ppk でもかまいません。プライベートキーにはパブリックキーの名前とは異なる名前を付けることができますが、使いやすくするために同じ名前を使用してください。
aws ec2 create-key-pair \ --key-name my-key-pair \ --key-type rsa \ --key-format pem \ --query "KeyMaterial" \ --output text > my-key-pair.pem>
2. macOS または Linux コンピューターの SSH クライアントを使用して Linux インスタンスに接続する場合は、次のコマンドを実行します。
chmod 400 key-pair-name.pem
前述のコマンドは、プライベートキーファイルの権限を設定して、自分だけが読み取れるようにします。これらの権限を設定しないと、このキーペアを使用してインスタンスに接続することはできません。詳細については、「エラー: 保護されていないプライベートキーファイルです」を参照してください。
EC2 Linux インスタンスに新しいユーザーを追加する
1. SSH を使用して Linux インスタンスに接続します。
2. adduser コマンドを使用して、EC2 インスタンス (new_user を新しいアカウント名に置き換えます)。次の例では、関連するグループ、ホームディレクトリ、およびエントリをインスタンスの /etc/passwd ファイルに作成します。
$ sudo adduser new_user
構成によっては、ホームディレクトリがデフォルトで作成されない場合があります。続行する前に、ホームディレクトリが作成されたことを確認してください。
注: new_user を Ubuntu インスタンスに追加する場合は、新しいアカウントにパスワードが追加されないように --disabled-password オプションを含めてください。
$ sudo adduser new_user --disabled-password
3. セキュリティコンテキストを new_user アカウントに変更して、作成するフォルダとファイルに正しい権限が割り当てられるようにします。
$ sudo su - new_user
注: sudo su-new_user コマンドを実行すると、コマンドシェルプロンプトの上部にある名前が、シェルセッションの新しいユーザーアカウントコンテキストを反映して変更されます。
4. .ssh ディレクトリを new_user ホームディレクトリに作成します。
$ mkdir .ssh
5. chmod コマンドを使用して .ssh ディレクトリの権限を 700 に変更します。権限を変更すると、new_user だけが .ssh ディレクトリの読み取り、書き込み、または開くことができるようにアクセスが制限されます。
$ chmod 700 .ssh
6. touch コマンドを使用して authorized_keys ファイルを .ssh ディレクトリに作成します。
$ touch .ssh/authorized_keys
7. chmod コマンドを使用して .ssh/authorized_keys ファイル権限を 600 に変更します。ファイル権限を変更すると、new_user への読み取りまたは書き込みアクセスが制限されます。
$ chmod 600 .ssh/authorized_keys
キーペアのパブリックキーを取得する
設定に適用される方法を使用して、キーペアのパブリックキーを取得します。
- サードパーティのツールを使用してキーペアを作成し、パブリックキーを Amazon EC2 にインポートする
- プライベートキーからパブリックキーを取得する
- インスタンスメタデータを使用してキーペアのパブリックキーを取得する
キーペアのフィンガープリントを確認する
独自のパブリックキーをインポートするか、キーペアのパブリックキーを取得したら、「キーペアのフィンガープリントを確認する」の手順に従ってください。
新しいユーザーアカウントの認証情報を更新して確認する
パブリックキーを取得したら、あなたがこのアカウントの .ssh/authorized\ _keys ファイルにパブリックキーを追加する権限を有していることを確認します。
1. Linux cat コマンドを追加モードで実行します。
$ cat >> .ssh/authorized_keys
2. 公開鍵を .ssh/authorized_keys ファイルに貼り付けて [Enter] を押します。
注: ほとんどの Linux コマンドラインインターフェイスでは、Ctrl+Shift+V キーを同時押しするとクリップボードのコンテンツがコマンドラインウィンドウに貼り付けられます。PuTTY コマンドラインインターフェイスの場合は、クリップボードのコンテンツを右クリックして PuTTY コマンドラインウィンドウに貼り付けます。
3. Ctrl+D を押したままにして cat を終了し、コマンドラインセッションプロンプトに戻ります。
新規ユーザーが SSH を使用して EC2 インスタンスに接続できることを確認する
1. ローカルコンピューターのコマンドラインプロンプトから次のコマンドを実行します。
$ ssh -i /path/new_key_pair.pem new_user@public_dns_name_of_EC2_Linux_instance
Windows から SSH を使用して EC2 Linux インスタンスに接続するには、「PuTTY を使用して Windows から Linux インスタンスに接続する」の手順に従ってください。
注: 接続しようとしたときにエラーが発生した場合は、「インスタンスへの接続のトラブルシューティング」を参照してください。
2. インスタンスのコマンドラインから id コマンドを実行して、new_user アカウント用に作成されたユーザーとグループの情報を表示します。
$ id
id コマンドは、次のような情報を返します。
uid=1004(new_user) gid=1004(new_user) groups=1004(new_user)
3. プライベートキーファイルを新しいユーザーに配布します。
関連情報
関連するコンテンツ
質問済み 2年前

