EC2「Amazon Linux2」を起動させた後、sshでログイン出来るのは起動時に指定した「鍵認証」だけです。今回は備忘録を兼ねて、次の内容を書いていきます。
- ec2-userの鍵を増やす。
- ec2-userのパスワード認証を有効にする。
セキュリティ的には甘くなります。ただ、ec2-userだけしか利用出来ない前提で利用者毎に鍵を分けると利用者の特定がしやすいです。パスワード認証は閉じた空間で利便性の為に、等といった需要はあるのかと思います。
手順
それぞれの手順は次の通りです。
- ec2-userの鍵を増やす。
→ ssh-keygenで鍵を追加する。 - ec2-userのパスワード認証を有効にする。
→ sshd_configを変更する。
詳しく見ていきましょう。
ec2-userの鍵を増やす
ssh-keygenを利用して鍵(秘密+公開)を新しく作成し、既存のauthorized_keysに追記します。
◆ec2-userでログインして鍵作成
sudo su ec2-user
ssh-keygen
*対話入力は全てEnter(暗号種別RSA, パスコード無し) 。id_rsa(秘密鍵)とid_rsa.pub(公開鍵)が「/home/ec2-user/.ssh」配下に作成されます。
◆作成された公開鍵を許可リストに追記
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
以上です。秘密鍵であるid_rsaは大切に保管しましょう。
■補足1
ssh-keygenを同等の内容で「対話無し」で進める場合は次の通りです。
ssh-keygen -t rsa -N “” -f id_rsa
なお、コメント(デフォルトはユーザー名@ホスト名)を指定する場合は、
ssh-keygen -t rsa -N “” -f id_rsa -C “myKey01”
です。
■補足2
鍵認証ログインのログ確認について書きます。
Aさん:ec2-userの鍵1を持っている。
Bさん:ec2-userの鍵2を持っている。
とした場合に、ログイン情報はec2-userとなり、誰が(どの鍵で)ログインしたのかわかりません。調べるためには「/var/log/secure」に出力されるフィンガープリントを確認します。
以下、出力例です。
Sep 8 23:36:07 ip-x-x-x-x sshd[3154]: Accepted publickey for ec2-user from x.x.x.x port 55261 ssh2: RSA SHA256:UG5YG/5/Wj6wFdLE/Ou6vYLhHtQWlHhxjHvRttNKNAa
EC2内に保存されている公開鍵のフィンガープリントは以下コマンドで確認可能です。
ssh-keygen -lf /home/ec2-user/.ssh/authorized_keys
以下、出力例です。
・2048 SHA256:UG5YG/5/Wj6wFdLE/Ou6vYLhHtQWlHhxjHvRttNKNAa A-san (RSA)
・2048 SHA256:UG5YG/5/7fAfhjFhfD/FfhasdfDFDAEhF8FnjfFafDD b-san (RSA)
この例からログインで使われた鍵はAさんのものと分かります。
※Amazon Linux2の場合、デフォルトでフィンガープリントはログ出力されていました。環境によってはsshd_configのログ設定を変更しないと出力されないようです。
ec2-userのパスワード認証を有効にする
ここでの方法はec2-userだけではなく「sshでパスワード認証を有効化」という設定になります。
sshd_config(PasswordAuthenticationをyesに)を変更してsshd.serviceを再起動します。
# sshd_config変更
sudo vi /etc/ssh/sshd_config
(変更前) PasswordAuthentication no
(変更後) PasswordAuthentication yes
# sshd再起動
sudo systemctl restart sshd
なお「PasswordAuthentication」の行削除でもOKです(デフォルトはyesのため)。
次に、ec2-userは初期はパスワード未設定のため、以下で設定します。(もちろんec2-user以外のアカウントを「sudo useradd アカウント名」で作成してもOK)
sudo passwd ec2-user
これでsshのパスワード認証でログイン出来るようになりました。
補足事項
セキュリティ的には鍵認証のほうが強いです(認証鍵の管理方法は別として)。SSHポートの公開状況やポリシー的にマズイ場合は鍵認証を使いましょう。
まとめ
適用範囲は狭いですが本記事では以下をご紹介しました。
最後までご覧いただき、ありがとうございました。
コメント