SSHサーバ(sshd)の基本設定|Linuxで安全に運用するためのポイント

目次
OpenSSHサーバ(sshd)の基本設定と実務で重要な項目を理解しよう
LinuxサーバへSSH接続する際、サーバ側で動作しているのがsshd(SSH Daemon)です。
OpenSSH Serverをインストールするとsshdサービスが起動し、クライアントからのSSH接続を受け付けるようになります。
Linuxサーバ管理者にとってsshdの設定は非常に重要です。設定を誤ると不正アクセスのリスクが高まるだけでなく、管理者自身がログインできなくなる可能性もあります。
本記事ではOpenSSHサーバの基本設定や設定ファイルの構成、実務でよく利用される設定項目について詳しく解説します。
sshdとは何か
sshdとはSSHサーバ機能を提供するデーモンプログラムです。
SSHクライアントからの接続要求を受け付け、認証や暗号化通信の管理を行います。
Linuxでは通常以下のサービス名で動作します。
sshd
サービス状態は次のコマンドで確認できます。
$ systemctl status sshd
実行例は以下のようになります。
● sshd.service - OpenSSH server daemon
Active: active (running)active (running) と表示されれば正常に動作しています。
OpenSSH Serverのインストール確認
AlmaLinuxやRocky Linuxでは以下のコマンドで確認できます。
$ rpm -qa | grep openssh
インストールされていない場合は以下を実行します。
# dnf install -y openssh-server
Ubuntu系の場合は以下になります。
$ sudo apt install openssh-serversshdの起動と自動起動設定
サービスの起動は次のコマンドで行います。
# systemctl start sshd
状態確認です。
$ systemctl status sshd
OS起動時に自動起動させる場合は以下を実行します。
# systemctl enable sshdサーバ構築直後に必ず確認しておきたいポイントです。
sshdの設定ファイル
OpenSSHサーバの設定は主に以下のファイルで管理されます。
/etc/ssh/sshd_config実務で最も頻繁に編集する設定ファイルの一つです。
設定変更後はサービス再起動または設定再読込が必要になります。
# systemctl restart sshd
または
# systemctl reload sshd設定変更前の注意点
SSH設定を変更する際は、現在のSSH接続を切断しないよう注意が必要です。
実務では以下の手順が推奨されています。
- SSHセッションを2つ開く
- 設定変更する
- 設定テストする
- 新規接続を確認する
- 問題なければ既存接続を閉じる
これを怠るとサーバへログインできなくなる場合があります。
設定ファイルの構文チェック
設定変更後は必ず構文チェックを実施します。
# sshd -t正常であれば何も表示されません。
エラーがある場合は内容が表示されます。
実務では再起動前に必ず実施することをおすすめします。
Port設定
SSHの待受ポートを指定します。
Port 22
デフォルトは22番ポートです。
変更する場合は以下のように設定します。
Port 2222ただし、ポート変更だけで十分なセキュリティ対策になるわけではありません。
PermitRootLogin設定
rootユーザーによる直接ログインを制御します。
初期状態では以下になっていることがあります。
PermitRootLogin yes
実務では以下が推奨されます。
PermitRootLogin norootログインを禁止し、一般ユーザーからsudoで昇格する運用が一般的です。
PasswordAuthentication設定
パスワード認証の有効・無効を設定します。
PasswordAuthentication yes
公開鍵認証へ移行した後は以下が推奨されます。
PasswordAuthentication no総当たり攻撃のリスクを低減できます。
PubkeyAuthentication設定
公開鍵認証を有効化します。
PubkeyAuthentication yes現在の企業環境ではほぼ必須の設定です。
公開鍵認証を利用することで高い安全性を実現できます。
AllowUsers設定
SSH接続を許可するユーザーを限定できます。
AllowUsers admin
複数指定も可能です。
AllowUsers admin operator不要なアカウントからのログインを防止できます。
AllowGroups設定
グループ単位でログイン許可を設定できます。
AllowGroups sshusers企業環境ではこちらを利用するケースもあります。
MaxAuthTries設定
認証失敗回数の上限を指定します。
MaxAuthTries 3総当たり攻撃対策として利用されます。
LoginGraceTime設定
認証完了までの制限時間を設定します。
LoginGraceTime 60単位は秒です。
一定時間認証されなければ接続を切断します。
Banner設定
ログイン前に警告文を表示できます。
Banner /etc/issue.net企業では法的警告や監査対策として利用されることがあります。
例:
Authorized users only.
All activities may be monitored.ListenAddress設定
SSHの待受IPアドレスを指定できます。
ListenAddress 192.168.60.101複数NIC環境では重要な設定です。
SSH接続元制限との組み合わせ
実務ではsshd設定だけでなく、firewalldやnftablesも併用します。
例えば管理端末のみ許可する場合です。
firewall-cmd --add-rich-rule='rule family="ipv4"
source address="192.168.60.10"
service name="ssh"
accept'ネットワークレベルとアプリケーションレベルの両方で制御することが重要です。
設定変更後の確認方法
設定内容を確認するには以下を利用できます。
sshd -T有効な設定値が一覧表示されます。
トラブルシューティング時に役立つコマンドです。
実務で推奨される最低限の設定
企業環境で最低限実施したい設定例です。
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
LoginGraceTime 60さらに接続元IP制限や多要素認証を追加すると、より安全な運用が可能になります。
まとめ
sshdはLinuxサーバのリモート管理を支える重要なサービスです。
設定ファイルであるsshd_configには多数の設定項目がありますが、まずはPort、PermitRootLogin、PasswordAuthentication、PubkeyAuthenticationなどの基本項目を理解することが重要です。
実務では公開鍵認証の利用、rootログイン禁止、接続元制限を組み合わせることで安全なSSH運用を実現しています。
SSHサーバを構築する際は、設定変更後の構文チェックと接続確認を忘れずに実施するようにしましょう。





