〜 安全で信頼性の高いリモート接続を実現する 〜
目次
🧭 概要
OpenSSH(Open Secure Shell)は、Linuxにおけるリモート接続と管理の基本です。
本記事では、sshd(SSHデーモン)の設定、ユーザのログイン制御、鍵認証の利用など、セキュアなSSH運用についてわかりやすく解説します。
⚙️ SSHデーモンと設定ファイルの基礎
主なファイルとサービス:
| 項目 | 説明 |
|---|---|
sshd | SSH接続を受け付けるデーモン |
/etc/ssh/sshd_config | SSHサーバーの設定ファイル |
/etc/ssh/ssh_host_* | ホスト鍵(秘密鍵/公開鍵) |
systemctl restart sshd | 設定変更後の再起動コマンド |
# 設定確認
sudo sshd -T
# 設定再読込
sudo systemctl reload sshd
🔐 ホスト鍵(サーバー側鍵)
SSHサーバーは起動時にホスト鍵を使用してクライアントとセッションを確立します。
| ファイル | 内容 |
|---|---|
/etc/ssh/ssh_host_rsa_key | RSA形式の秘密鍵 |
/etc/ssh/ssh_host_rsa_key.pub | 公開鍵 |
/etc/ssh/ssh_host_ecdsa_key | ECDSA鍵(高速) |
/etc/ssh/ssh_host_ed25519_key | Ed25519鍵(推奨) |
# 再生成する場合(例:RSA鍵)
sudo ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''
🛡️ セキュアなsshd_configの設定例
# ルートログインを禁止(推奨)
PermitRootLogin no
# パスワードログインを禁止(鍵認証のみ許可)
PasswordAuthentication no
# 鍵認証を有効化
PubkeyAuthentication yes
# 特定ユーザーのみログイン許可
AllowUsers admin user01
# SSHプロトコルバージョン(2が標準)
Protocol 2
# 接続試行回数・タイムアウト設定
MaxAuthTries 3
LoginGraceTime 30
# ポート変更(セキュリティ向上)
Port 2222
※設定を変更後は、必ず sshd を再起動:
sudo systemctl restart sshd
🔑 公開鍵認証による安全なログイン
クライアント側(例:ユーザー “alice”):
# 鍵ペアを生成
ssh-keygen -t ed25519 -C "alice@host"
# 公開鍵をサーバーにコピー
ssh-copy-id -i ~/.ssh/id_ed25519.pub alice@server
サーバー側:
- 公開鍵が
~/.ssh/authorized_keysに登録されます。 ~/.sshのパーミッションは700、authorized_keysは600に設定しましょう。
🚫 ログイン制限とセキュリティ強化
| 設定項目 | 説明 |
|---|---|
PermitRootLogin no | rootログインを禁止(sudo推奨) |
AllowUsers | ログインを許可するユーザーを制限 |
PasswordAuthentication no | パスワードログインを禁止(鍵のみ許可) |
MaxSessions, MaxStartups | 同時接続の制限 |
🧪 設定のテスト
設定ファイルに誤りがないかを事前に確認できます:
sudo sshd -t
ログを確認するには:
# 接続ログ
journalctl -u sshd
# または /var/log/secure(CentOS系) /var/log/auth.log(Debian系)
tail -f /var/log/secure
📌 試験・実務ポイントまとめ
| ポイント | 内容 |
|---|---|
sshd_config | 各設定項目の意味を正しく理解 |
| ホスト鍵 | ssh_host_* の役割と再生成方法 |
| 公開鍵認証 | authorized_keys の仕組みとパーミッション |
| 接続制限 | PermitRootLogin, AllowUsers, MaxAuthTries など |
| トラブル対応 | sshd -t での事前チェックとログ確認 |
✅ まとめ
| 項目 | コマンド例・設定 |
|---|---|
| SSH再起動 | systemctl restart sshd |
| ホスト鍵再生成 | ssh-keygen -f /etc/ssh/ssh_host_rsa_key |
| 鍵認証有効化 | PubkeyAuthentication yes |
| root禁止 | PermitRootLogin no |
| 特定ユーザ許可 | AllowUsers alice bob |
| 公開鍵転送 | ssh-copy-id user@host |
コメント