Amazon EC2 Linux インスタンスのシステムユーザーを管理する
各 Linux インスタンスは、デフォルトの Linux システムユーザーで起動されます。インスタンスには、ユーザーを追加することも、削除することもできます。
デフォルトのユーザーの場合、デフォルトのユーザー名は、インスタンスの起動時に指定した AMI によって決まります。
注記
デフォルトでは、パスワード認証とルートログインは無効になっており、また、sudo は有効化されています。インスタンスにログインするには、キーペアを使用する必要があります。ログインの詳細については、「SSH を使用した Linux インスタンスへの接続」を参照してください。
ユーザーは、インスタンスのパスワード認証とルートログインを許可できます。詳細については、「インスタンスのオペレーティングシステムに関するドキュメント」を参照してください。
注記
Linux システムユーザーと IAM ユーザーを混同しないようにしてください。詳細については、『IAM ユーザーガイド』の「IAM ユーザー」を参照してください。
デフォルトのユーザー名
EC2 インスタンスのデフォルトのユーザー名は、インスタンスの起動時に指定した AMI によって決まります。
デフォルトのユーザー名は以下のとおりです。
-
Amazon Linux AMI の場合、ユーザー名は
ec2-user
です。 -
Centos AMI の場合、ユーザー名は
centos
またはec2-user
です。 -
Debian AMI の場合は、ユーザー名は
admin
です。 -
Fedora AMI の場合、ユーザー名は
fedora
またはec2-user
です。 -
RHEL AMI の場合、ユーザー名は
ec2-user
またはroot
です。 -
SUSE AMI の場合、ユーザー名は
ec2-user
またはroot
です。 -
Ubuntu AMI の場合、ユーザー名は
ubuntu
です。 -
Oracle AMI の場合、ユーザー名は
ec2-user
です。 -
Bitnami AMI の場合、ユーザー名は
bitnami
です。
注記
他の Linux ディストリビューションのデフォルトのユーザー名を確認するには、AMI プロバイダーに確認してください。
考慮事項
デフォルトのユーザーを使用するのが多くのアプリケーションに適しています。ただし、個人が自分のファイルとワークスペースを持つことができるように、ユーザーを追加することを選択できます。さらに、新しいユーザー用にユーザーを作成することは、デフォルトユーザーへのアクセス権を複数のユーザーに (経験のないユーザーも含めて) 与えるよりも、はるかに安全です。これはデフォルトのユーザーが不適切に使用された場合、システムにさまざまな損害を与える可能性があるためです。詳細については、「EC2 インスタンスの保護のヒント
Linux システムのユーザーを使用してユーザーが EC2 インスタンスに SSH アクセスできるようにするには、SSH キーをユーザーと共有する必要があります。または、EC2 Instance Connect を使用して、SSH キーを共有および管理せずにユーザーにアクセスを提供できます。詳細については、「EC2 Instance Connect を使用した Linux インスタンスへの接続」を参照してください。
ユーザーの作成
最初にユーザーを作成してから、ユーザーがインスタンスに接続してログインできるようにする SSH パブリックキーを追加します。
重要
この手順のステップ 1 では、新しいキーペアを作成します。キーペアはパスワードのように機能するため、安全に取り扱うことが非常に重要です。ユーザー用のキーペアを作成する場合は、プライベートキーを安全に送信する必要があります。または、ユーザーが自分のマシン上で独自のキーペアを作成し、プライベートキーを安全に保持することでステップ 1 と 2 を完了してから、あなたにパブリックキーを送信してステップ 3 以降の手順を完了してもらうこともできます。
ユーザーを作成するには
-
新しいキーペアを作成します。この
.pem
ファイルは、ユーザーを作成するユーザーに提供する必要があります。ユーザーがインスタンスに接続するには、このファイルを使用する必要があります。 -
前のステップで作成したキーペアからパブリックキーを取得します。
$
ssh-keygen -y -f /path_to_key_pair
/key-pair-name
.pemコマンドは、次の例に示すように、パブリックキーを返します。
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6Vhz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXrlsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZqaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3RbBQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
-
インスタンスに接続します。
-
adduser コマンドを使用して、ユーザーを作成し、システムに追加します (
/etc/passwd
ファイルにエントリが追加されます)。このコマンドでも、グループが作成され、ユーザーのホームディレクトリが作成されます。この例では、ユーザーは
という名前になります。newuser
-
AL2023 と Amazon Linux 2
AL2023 および Amazon Linux 2 では、デフォルトでパスワード認証が無効化された状態で、ユーザーが作成されます。
[ec2-user ~]$
sudo adduser
newuser
-
Ubuntu
パスワード認証が無効化されたユーザーを作成するには、
--disabled-password
パラメータを含めます。[ubuntu ~]$
sudo adduser
--disabled-passwordnewuser
-
-
新しいユーザーに切り替えて、作成するディレクトリとファイルが適切な所有権を持つようにします。
[ec2-user ~]$
sudo su -
newuser
シェルセッションが新しいユーザーに切り替わったことを示すために
ec2-user
から
に変更するように求められます。newuser
-
ユーザーに SSH パブリックキーを追加します。以下のサブステップで説明しているように、最初に SSH キーファイル用のディレクトリをユーザーのホームディレクトリに作成し、次にキーファイルを作成して、最後に公開キーをキーファイルに貼り付けます。
-
.ssh
ホームディレクトリに
ディレクトリを作成し、そのファイルのアクセス許可をnewuser
700
(所有者のみ、読み取り、書き込み、削除が可能) に変更します。[newuser ~]$
mkdir .ssh
[newuser ~]$
chmod 700 .ssh
重要
厳密なファイル権限がなければ、ユーザーはログインできません。
-
authorized_keys
という名前のファイルを.ssh
ディレクトリに作成し、そのファイルのアクセス許可を600
(所有者のみ、読み取りおよび書き込みが可能) に変更します。[newuser ~]$
touch .ssh/authorized_keys
[newuser ~]$
chmod 600 .ssh/authorized_keys
重要
厳密なファイル権限がなければ、ユーザーはログインできません。
-
お好みのテキストエディタ (例: vim や nano) で、
authorized_keys
ファイルを開きます。[newuser ~]$
nano .ssh/authorized_keys
ステップ 2 で取得したパブリックキーをファイルに貼り付け、変更を保存します。
重要
パブリックキーは、必ず 1 つの連続した行に貼り付けてください。パブリックキーを複数行に分割することはできません。
これで、
authorized_keys
ファイルに追加したパブリックキーの対であるプライベートキーを使用して、インスタンスの
ユーザーにログインできるようになりました。Linux インスタンスに接続するさまざまな方法の詳細については、「SSH を使用した Linux インスタンスへの接続」を参照してください。newuser
-
ユーザーの削除
ユーザーが不要になった場合、今後使用されないようにそのユーザーを削除できます。
システムからユーザーアカウントを削除するには、userdel コマンドを使用します。-r
パラメータを指定すると、ユーザーのホームディレクトリとメールスプールが削除されます。ユーザーのホームディレクトリとメールスプールを維持するには、-r
パラメータを省略します。
[ec2-user ~]$
sudo userdel -r
olduser