AmazonEC2にターミナルから接続できたら、次はデフォルトユーザ(ec2-user)ではなく、新しいユーザーを作成してそのユーザーで操作するのが一般的です。
ec2-userのままで操作を続けているとセキュリティホールとなってしまいますからね。
本日は、そんな「EC2インスタンスに新規ユーザーアカウントを追加しSSHアクセスを行う方法」を紹介していきます。
以前の記事の続きになります。
コンテンツ
パブリックキーを取得する
まずは後ほど使用するための、パブリックキーを取得します。
コマンドラインを開きます。
% pwd
/Users/<ユーザー名>/.ssh
前回記事では、/Users/<ユーザー名>/.sshのディレクトリに、「sample.pem」ファイルを置きました。
sample.pemファイルからパブリックキーを取得するコマンドを入力します。
% ssh-keygen -y -f sample.pem
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCDB6tFHF8C6XlLFQ7YlFMsvCpHUppLSEjH3gLDFNkHlXIR1eyplmbxtSdrTpBFC12pp7HjwCo4+3lGkFVboIqK3oBMZN+wD8+oD9FfFqYtirqyHO4iYfGxWI6qi1KjQ8Z8VOFec1dImGh9XwHWXotR9x8OFwg5xb5S/JDEy3MSiS3MBNSJ/e6k2mi+cmbDdE35PsedoOegwQ/tSK7e8eXILhGTBC0u0RSjunhqdohJXKWJr4OAK0D9wEH2KUzDf0vM6j/YOiMteWZjKEXmeTe4pKqn2xvTjEfV50r/shiTww9HNq11sYNi+Y0BvDA/5lFeBm/lDirlgbt1a9kNe7Gb
コマンド入力すると上記のような感じのssh-rsaで始まるパブリックキーが発行されます。
こちらは後ほど利用するのでどこかにメモしておきましょう。
ログインする
パブリックキーのメモができたら、早速ec2-userとしてec2にログインを実行します。
ここでは説明をわかりやすくするために、<ユーザー名>をsample-userと、「.pem」ファイルをsample.pemと命名しておきます。
% ssh ec2-user@18.193.39.24 -i /Users/sample-user/.ssh/sample.pem
Last login: Wed Nov 17 00:56:59 2021
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
2 package(s) needed for security, out of 15 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-10-0-2-143 ~]$
こんな感じでログインできたかと思います。
ルートユーザーになる
ログイン後はルートユーザーになり、新しくユーザーを作成します。
[ec2-user@ip-10-0-2-143 ~]$ su -
rootユーザーに切り替えができない場合はsudoコマンドを実行してください。
[ec2-user@ip-10-0-2-143 ~]$ sudo su -
初期設定ではrootにパスワードが設定されていないので、設定を行います。
[root@ip-10-0-2-143 ~]# passwd root
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
その次にルートユーザーになったら設定ファイルを編集します。
sshd_configという設定ファイルを編集します。
[root@ip-10-0-2-143 ~]# sudoedit /etc/ssh/sshd_config
設定ファイルの編集画面になったら、sshd_configファイルの最後尾にに新しく追加したいユーザー名を登録します。
ここでは、sample-userという名前で登録することにします。
AllowUsers sample-user
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server
AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f
AuthorizedKeysCommandUser ec2-instance-connect
AllowUsers sample-user
最後の行にこんな感じで記入をします。
新規ユーザーを作成する
登録できたら次は、そのsample-userの実物を作成しなければなりません。
新規ユーザーを作成する
先ずはrootユーザーであることを確認します。
下記コマンドでsample-userを作成することができます。
% adduser simple-user
入力したら、早速そのユーザーに切り替えます。
新規作成したユーザーにパスワードを新しく付与します。
[root@ip-10-0-2-143 ~]# passwd sample-user
Changing password for user sample-user.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
新規パスワードを作成できました。
新規パスワードが作成できたら、早速新しく作成したユーザーアカウントに切り替えます。
% su - sample-user
[sample-user@ip-10-0-2-143 ~]$
sample-userに切り替えができました。
新規ユーザーで設定
アクセス許可を付与
.sshディレクトリを作成する
% mkdir .ssh
chmodコマンドで書き込みを行える
% chmod 700 .ssh
authorized_keyファイルを作成する。
% touch .ssh/authorized_keys
chmodコマンドを称して、.ssh/authorized_keysファイルのアクセス許可を600に変更します。
% chmod 600 .ssh/authorized_keys
ここに最初に発行したパブリックキーを書き込みます。
% ssh-keygen -y -f sample.pemコマンドで出力されたssh-rsaで始まるコードですね。
% vim .ssh/authorized_keys
i で書き込みモードにして、ペーストして、:wq! (保存して終了)を実行します。
この後、exitして早速sample-userでログインできるかの実験をしてみます。
sample-user@MacBook-Pro .ssh % ssh sample-user@18.183.69.24 -i /Users/sample-user/.ssh/sample.pem
Last login: Wed Nov 17 00:45:14 2021
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
2 package(s) needed for security, out of 15 available
Run "sudo yum update" to apply all updates.
[sample-user@ip-10-0-2-143 ~]$
ログインできました。
ログインユーザーの許可
次はec2-userがsshでログインできないようにする必要があります。
なぜならec2-userはdefaultのユーザーでこのユーザーを悪用して、悪いことをする人も当然存在しうるわけです。
default設定は常に注意が必要です。
設定完了後にシステムを再起動させます。
$ sudo systemctl restart sshd
$ exit
さて、これで改めてログインできるか確認してみます。
これだとログインできませんが
% ssh ec2-user@18.183.39.22 -i /Users/sample-user/.ssh/sample.pem
これだとログインすることができます。
% ssh sample-user@18.183.39.22 -i /Users/sample-user/.ssh/sample.pem
以上で設定が完了できました。
以上。
最後に
いかがでしたでしょうか。
以上が、「【AWS】EC2インスタンスに新規ユーザーアカウントを追加しSSHアクセスを行う方法」の紹介記事になります。
新規ユーザーを追加することができたら、新規ユーザーにsudo権限を付与しておくことも非常に役に立ちます。
設定方法は以下の記事で紹介をしておきます。




コメントを残す