SSH アクセスを行える新しいユーザーアカウントを Amazon EC2 Linux インスタンスに追加するには?

最終更新日: 2020 年 3 月 9 日

SSH を使用して Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスに接続できる、新しいユーザーアカウントを追加したいと考えています。どうすればよいですか?

簡単な説明

すべての Amazon EC2 Linux インスタンスは、インスタンスへの管理アクセス権限を持つデフォルトのシステムユーザーアカウントで起動します。このインスタンスに複数のユーザーがアクセスする必要がある場合は、各ユーザーに個別のアカウントを使用することが、セキュリティ上のベストプラクティスです。

cloud-init とユーザーデータを使用すれば、この手順を迅速化できます。詳細については、ユーザーに、SSH を使用して EC2 Linux インスタンスに接続する権限を付与するには、どうすればよいですか? をご覧ください。

解決方法

新しいユーザーアカウント用にキーペアを作成する

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 を終了し、コマンドラインセッションのプロンプトに戻ります。

(オプション) 新しいユーザーに sudo の使用を許可する

注意: 新しいユーザーに sudo の使用を許可したくない場合は、新しいユーザーが SSH を使用して EC2 インスタンスへ接続できることを確認するに進みます。

1.    passwd コマンドを使用して新しいユーザーのパスワードを作成します。

$ sudo passwd new_user

注意: パスワードの再入力を求められます。確認のため、パスワードを再度入力します。

2.    新しいユーザーを適切なグループに追加します。

Amazon Linux、Amazon Linux 2、RHEL、CentOS の場合:

usermod コマンドを使用して、ユーザーを wheel グループに追加します。

$ sudo usermod -aG wheel new_user

Ubuntu の場合:

usermod コマンドを使用してユーザーを sudo グループに追加します。

$ sudo usermod -aG sudo new_user

新しいユーザーが SSH を使用して EC2 インスタンスへ接続できることを確認する

1.    ローカルコンピュータのコマンドラインプロンプトから次のコマンドを実行し、new_user として ssh を使用時に EC2 インスタンスに接続できるかを確認します。

$ ssh -i /path/new_key_pair.pem new_user@public_dns_name_of_EC2_Linux_instance

Windows で SSH を使用して EC2 Linux インスタンスに接続するには、「PuTTY を使用した Windows から Linux インスタンスへの接続」の手順に従います。

2.    SSH を使用して new_user としてインスタンスに接続した後、EC2 インスタンスのコマンドラインで id コマンドを実行し、new_user アカウント用に作成されたユーザー情報とグループ情報を確認します。

$ id

id コマンドでは、次のような情報が返されます。

uid=1004(new_user) gid=1004(new_user) groups=1004(new_user)

3.    プライベートキーファイルを新しいユーザーに配布します。


この記事は役に立ちましたか?

改善できることはありますか?


さらにサポートが必要な場合