Goal
無料利用枠に含まれるAmazon Linux 2のAMIを使用して作成したAmazon EC2インスタンスへパスワード認証でSSH接続できるユーザーを追加する際の手順を示します。
References
本文の手順は、次の文書を参考に作成しました。
- "RHEL 8のCLOUD-INITの設定および管理". Red Hat, Inc. Retrieved December 27, 2021.
Pre-Requisites
本文の手順で使用するAMIの詳細は、次の通りです。
- Amazon Linux 2 AMI (HVM) - Kernel 5.10, SSD Volume Type - ami-0218d08a1f9dac831 (64 ビット x86) / ami-09d4b65ff082c3c6a (64 ビット Arm)
How To
cloud-initの設定を変更する
cloud-init
は、システムの起動時にクラウドインスタンスの初期化を自動化するソフトウェアパッケージです。インスタンスの起動時、EC2インスタンスへ次の変更を適用します。
- ホスト名の設定
- インスタンスへのパッケージのインストール
- スクリプトの実行
- デフォルトの仮想マシン動作の抑制
EC2インスタンスに加えた変更が、インスタンスの起動時に cloud-init
により書き換えられてしまうことを防ぐため、動作抑制に関する設定を予め変更しておきます。
/etc/cloud/cloud.cfg
をviエディタで編集します。
-
ssh_pwauth
をfalse
からtrue
へ変更し、パスワード認証をデフォルトで有効にします。
ssh_pwauth: true
sshdの設定を変更する
sshdでパスワード認証によるログインを有効にします。
/etc/ssh/sshd_config
をviエディタで編集します。
-
PasswordAuthentication
をno
からyes
へ変更し、パスワード認証を有効にします。
PasswordAuthentication yes
ユーザーを追加する
パスワード認証でSSH接続できるユーザーを追加し、ユーザーへパスワードを設定します。
本書の手順では、ec2-userの代わりに、sudoでシステム管理をおこなえるユーザーを作成するため、useradd
コマンドで -G wheel
オプションを使用しています。一般ユーザーを追加する場合は、-G wheel
オプションを使用しないでください。
> sudo useradd -G wheel manager
> sudo passwd manager
Changing password for user manager.
New password: PASSWORD
Retype new password: PASSWORD
passwd: all authentication tokens updated successfully.
追加したユーザーを確認します。
useradd
コマンドで -G wheel
オプションを使用していない場合、wheel
グループへの所属と su
によるrootユーザーへの切り替えの確認は不要です。
> grep wheel /etc/group
wheel:x:10:ec2-user,manager
> grep manager /etc/passwd
manager:x:1234:1234::/home/manager:/bin/bash
> sudo su manager
> sudo su
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for manager: PASSWORD
> exit
sshdを再起動する
sshdの設定変更を反映するため、sshdを再起動します。
sudo systemctl restart sshd.service
追加したユーザーによるSSH接続を確認する
追加したユーザーを使用して、EC2インスタンスへパスワード認証によるSSH接続ができるかを確認します。