RHEL9系/Amazon Linux 2023のsshdの設定について
こんにちは、T.Uです。
Red Hat Enterprise Linux 9、Almalinux 9、Rocky Linux 9、およびAmazon Linux 2023のsshdの設定について、小ネタを書かせていただきます。
以前のsshdの設定変更方法について
RHEL8系、Amazon Linux 2 までのsshdの設定変更は、設定ファイルに直接記載し、反映する形をとっていました。
例えば、SSHの標準待ち受けポート22番に、更に20022番を追加する際は、以下の様な手順になります。
# cp -ip /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
# vi /etc/ssh/sshd_config
==============================================
# Port 22
==============================================
↓ ポート指定箇所をアンコメントしてポート番号を追加
==============================================
Port 22
Port 20022
==============================================
# sshd -t
# systemctl restart sshd
設定ファイル(sshd_config)には、以下の様なコメントが記載されています。
# less /etc/ssh/sshd_config
==============================================
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value.
==============================================
※ AlmaLinux release 8.7 (Stone Smilodon) で内容確認
DeepLで日本語訳すると以下の様な内容になりました。
OpenSSH に同梱されているデフォルトの sshd_config のオプションは、可能な限りデフォルト値で指定し、コメントで残すという戦略をとっています。 コメントされていないオプションは、デフォルト値を上書きします。
「#」でコメントアウトされている箇所はデフォルトの値なので、書き換える場合は追記してくれ、という形ですね。
推奨される設定方法とsshd_config内のコメント内容
それでは、表題のRHEL9系/Amazon Linux 2023の設定についてですが、先に設定ファイル内のコメントを確認してみます。
# less /etc/ssh/sshd_config
==============================================
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value.
# To modify the system-wide sshd configuration, create a *.conf file under
# /etc/ssh/sshd_config.d/ which will be automatically included below
Include /etc/ssh/sshd_config.d/*.conf
==============================================
※ AlmaLinux 9.1 (Lime Lynx) で内容確認
DeepLで日本語訳は以下です。
OpenSSHに同梱されているデフォルトのsshd_configのオプションに使用されている戦略は、オプションにデフォルト値を指定することです。
可能ですが、コメント付きで残してください。 コメントされていないオプションは、デフォルト値を上書きします。
システム全体の sshd 構成を変更するには、以下の場所に *.conf ファイルを作成します。 /etc/ssh/sshd_config.d/ 以下、自動的に含まれるようになります。
どうやら、/etc/ssh/sshd_config.d/ というディレクトリがあるので、そこに設定ファイルを置けという文言が追加されている様です。
実際にディレクトリを見てみると、既存の設定ファイルもあり、PrintMotd 等はここで指定がされています。
# ls -l /etc/ssh/sshd_config.d/
total 4
-rw——- 1 root root 719 Nov 15 19:18 50-redhat.conf
# cat /etc/ssh/sshd_config.d/50-redhat.conf
==============================================
# This system is following system-wide crypto policy. The changes to
# crypto properties (Ciphers, MACs, …) will not have any effect in
# this or following included files. To override some configuration option,
# write it before this block or include it before this file.
# Please, see manual pages for update-crypto-policies(8) and sshd_config(5).
Include /etc/crypto-policies/back-ends/opensshserver.config
SyslogFacility AUTHPRIV
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials no
UsePAM yes
X11Forwarding yes
# It is recommended to use pam_motd in /etc/pam.d/sshd instead of PrintMotd,
# as it is more configurable and versatile than the built-in version.
PrintMotd no
==============================================
最初に設定した、SSHのポート番号に20022番を追加したいといった場合は、こんな感じになりますね。
# vi /etc/ssh/sshd_config.d/port_add.conf
==============================================
Port 22
Port 20022
==============================================
# sshd -t
# systemctl restart sshd
また設定内容によっては、今まで通りsshd_configの中で変更が必要な項目もあるので、設定の際は注意をして欲しいです。
# cat /etc/ssh/sshd_config|egrep -v “^#|^\s*$”
==============================================
Include /etc/ssh/sshd_config.d/*.conf
AuthorizedKeysFile .ssh/authorized_keys
Subsystem sftp /usr/libexec/openssh/sftp-server
==============================================
※ AlmaLinux 9.1 (Lime Lynx) で内容確認
# cat /etc/ssh/sshd_config|egrep -v “^#|^\s*$”
==============================================
Include /etc/ssh/sshd_config.d/*.conf
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
PermitEmptyPasswords no
Subsystem sftp /usr/libexec/openssh/sftp-server
AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f
AuthorizedKeysCommandUser ec2-instance-connect
==============================================
※ Amazon Linux 2023 で内容確認
変更点の確認方法について
如何でしたでしょうか。OSやミドルウェアはどんどん新しくなる為、パッケージのアップデートでいつの間にか設定方法が変わっている事もあるので、いつもの手癖で設定をした際に、「あれ?」となる事もあるかと思います。
設定ファイルには英文でマニュアルや設定方法が記載してある場合もある為、もし設定が正しいはずなのに動かない、などとなる際は、設定ファイル自体を見直してみて良いと思います。
最後までお読みいただき、ありがとうございました!