SSH を使用して Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスに接続できる、新しいユーザーアカウントを追加したいと考えています。
簡単な説明
すべての Amazon EC2 Linux インスタンスは、インスタンスへの管理アクセス権限を持つデフォルトのシステムユーザーアカウントで起動します。複数のユーザーがインスタンスへのアクセスを必要とする場合、各ユーザーに対して別々のアカウントを使用することが、安全なベストプラクティスです。
cloud-init とユーザーデータを使用すれば、この手順を迅速化できます。詳細については、「loud-init とユーザーデータを使用して、EC2 インスタンスに SSH アクセスできる新しいユーザーアカウントを追加する方法を教えてください」を参照してください。
解決方法
新しいユーザーアカウント用にキーペアを作成する
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. new_user ホームディレクトリに .ssh ディレクトリを作成します。
$ mkdir .ssh
5. chmod コマンドを使用して、.ssh ディレクトリのアクセス許可を 700 に変更します。アクセス許可を変更すると、new_user のみが .ssh ディレクトリの読み込み、書き込みを行える、あるいはそれを開くことができるようにアクセスが制限されます。
$ chmod 700 .ssh
6. touch コマンドを使用して .ssh ディレクトリに authorized_keys ファイルを作成します。
$ touch .ssh/authorized_keys
7. chmod コマンドを使用して .ssh/authorized_keys ファイルのアクセス許可を 600 に変更します。ファイルのアクセス許可を変更すると、new_user に対する読み込みまたは書き込みのアクセスが制限されます。
$ chmod 600 .ssh/authorized_keys
キーペアのパブリックキーを取得する
設定に適用されるメソッドを用いて、キーペアのパブリックキーを取得します。
キーペアのフィンガープリントを確認する
独自のパブリックキーをインポートするか、キーペアのパブリックキーを取得した後、キーペアのフィンガープリントの確認の手順に進みます。
新しいユーザーアカウントの認証情報を更新して確認する
パブリックキーを取得したら、このアカウントの .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. プライベートキーファイルを新しいユーザーに配布します。
関連情報
Linux インスタンスでのユーザーアカウントの管理