SSHD設定生成
Zero-Trust Infrastructure Security

OpenSSH サーバー (sshd_config) セキュリティ強化構成ジェネレーター

rootログイン禁止、公開鍵認証の強制、最新のAEAD暗号スイート、厳格なアイドルタイムアウトを備えた本番Linuxサーバー向けsshd_configを生成します。

CVE-2024-6387 RegreSSHion Protection Active
プリセット:

Changing to a non-standard port stops 99% of automated port 22 credential bots.

DebianBanner (OS Fingerprinting)
Disabling stops OpenSSH from exposing specific Debian/Ubuntu package versions.
# ==============================================================================
# OpenSSH Server Hardened Configuration (sshd_config)
# Target File: /etc/ssh/sshd_config
# Standards: CIS Linux Benchmark / Mozilla Infosec / NIST SP 800-53
# Generated by ToolsAA: https://toolsaa.com/tools/sshd-config-generator
# ==============================================================================

# ------------------------------------------------------------------------------
# 1. Network & Address Binding
# ------------------------------------------------------------------------------
Port 2222
AddressFamily any
ListenAddress 0.0.0.0
ListenAddress ::

# ------------------------------------------------------------------------------
# 2. Host Key Infrastructure (Ed25519 & RSA)
# ------------------------------------------------------------------------------
HostKey /etc/ssh/ssh_host_ed25519_key
HostKey /etc/ssh/ssh_host_rsa_key

# ------------------------------------------------------------------------------
# 3. Logging & Auditing (VERBOSE records key fingerprints for auth tracing)
# ------------------------------------------------------------------------------
LogLevel VERBOSE
SyslogFacility AUTH

# ------------------------------------------------------------------------------
# 4. Authentication & Access Control
# ------------------------------------------------------------------------------
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
KbdInteractiveAuthentication no
ChallengeResponseAuthentication no
GSSAPIAuthentication no
KerberosAuthentication no
StrictModes yes
MaxAuthTries 3
MaxSessions 3
LoginGraceTime 30
AllowGroups ssh-users wheel

# ------------------------------------------------------------------------------
# 5. Cryptography Hardening (Ciphers, KEX, MACs & HostKeyAlgorithms)
# ------------------------------------------------------------------------------
KexAlgorithms [email protected],curve25519-sha256,[email protected],diffie-hellman-group16-sha512,diffie-hellman-group18-sha512
Ciphers [email protected],[email protected],[email protected]
MACs [email protected],[email protected],[email protected]
HostKeyAlgorithms ssh-ed25519,[email protected],rsa-sha2-512,rsa-sha2-256

# ------------------------------------------------------------------------------
# 6. Session Lifecycle & Security Defenses
# ------------------------------------------------------------------------------
ClientAliveInterval 300
ClientAliveCountMax 2
TCPKeepAlive no
X11Forwarding no
AllowTcpForwarding no
AllowAgentForwarding no
GatewayPorts no
PermitUserEnvironment no
Compression no
MaxStartups 10:30:60
UsePAM yes

# ------------------------------------------------------------------------------
# 7. Banners & Information Disclosure
# ------------------------------------------------------------------------------
PrintMotd no
PrintLastLog yes
Banner none
DebianBanner no

# ------------------------------------------------------------------------------
# 8. SFTP Subsystem
# ------------------------------------------------------------------------------
Subsystem sftp internal-sftp
セキュリティ等級
Score: 100/100(A+)
暗号化プロファイル
Post-Quantum & Curve25519
脆弱性対策状況
CVE-2024-6387 Mitigated

最新の強固な暗号化標準

耐量子暗号ハイブリッドおよび Curve25519 鍵交換、ChaCha20-Poly1305 および AES-GCM などの最新暗号のみを許可し、CBC や 3DES 等の脆弱な暗号を完全排除します。

ゼロトラストに基づく攻撃面削減

公開鍵認証を強制し、ルート直接ログインを完全封鎖。RegreSSHion (CVE-2024-6387) を防ぐ猶予時間制限とアイドル切断でブルートフォース攻撃を遮断します。

モジュール式 drop-in と安全な検証スクリプト

完全な設定ファイルだけでなく /etc/ssh/sshd_config.d/ 向けの分割設定と、sshd -t 構文事前テストを含むロールバック対応シェルスクリプトを同時出力します。

技術リファレンス&アーキテクチャガイド

OpenSSHサーバー(sshd_config)セキュリティ強化設定ジェネレーター — リファレンスガイド

rootログイン禁止、公開鍵認証の強制、最新のAEAD暗号スイート、厳格なアイドルタイムアウトを備えた本番Linuxサーバー向けsshd_configを生成します。

主要パラメータ&設定項目

PermitRootLoginenum (no | prohibit-password | yes)

root特権ユーザーのSSH経由での直接ログインを制御します。「no」に設定することで、一般ユーザーでのログインおよびsudoによる権限昇格を必須化します。

初期値: no
PasswordAuthenticationboolean (yes | no)

パスワード認証を許可するかどうかを指定します。「no」に設定するとパスワードログインを無効化し、非対称暗号による公開鍵認証のみを強制します。

初期値: no
Ciphersstring list

優先順位に従って許可する対称暗号化アルゴリズムを指定します。AEADモード(chacha20-poly1305、aes256-gcm)を強制し、脆弱なCBC暗号を排除します。

KexAlgorithmsstring list

鍵交換(KEX)アルゴリズムの許可リストを定義し、楕円曲線Diffie-Hellman(Curve25519)を優先して脆弱なレガシーDHグループを拒絶します。

初期値: curve25519-sha256,[email protected],diffie-hellman-group16-sha512,diffie-hellman-group18-sha512
ClientAliveIntervalinteger (秒)

暗号化チャネル経由でサーバーがキープアライブプローブを送信するまでのアイドル待機時間(秒)を設定します。

初期値: 300
ClientAliveCountMaxinteger

クライアントからの応答がない場合に、SSHサーバーが切断または無応答セッションを終了するまでのキープアライブ試行回数を指定します。

初期値: 2

プロの活用テクニック&推奨設定

sshd -t によるリロード前構文チェックの徹底

デーモンを再起動する前に、必ず 'sudo sshd -t' を実行して /etc/ssh/sshd_config の構文エラーを検証してください。何も出力されなければ構文は完全に正常です。

設定変更時は既存セッションを切断せず維持する

sshd をリロードする際は、現在作業中の端末を切断しないでください。別のターミナルを開いて新規接続テスト ('ssh -i ~/.ssh/id_ed25519 user@host') を行い、正常に認証できることを確認してからログアウトします。

Matchブロックは必ずファイル最末尾に記述する

'Match Group' や 'Match User' で宣言された条件付きディレクティブは、次の Match ブロックまたはファイル末尾まで後続の全設定に適用されます。全般的なセキュリティ設定はすべて最初の Match 句より前に記述してください。

Ubuntu 22.10以降のsystemdソケット有効化を点検する

systemd socket activation ('ssh.socket') を採用する最新のDebian/Ubuntu環境では、ポートやバインド変更の反映に 'systemctl restart ssh.socket' の実行が必要となる場合があります。

よくあるトラブルと解決策

パスワード認証を無効化した直後に 'Permission denied (publickey)' が発生する。

~/.ssh ディレクトリのパーミッションが 700 ('chmod 700 ~/.ssh')、authorized_keys が 600 ('chmod 600 ~/.ssh/authorized_keys') であることを確認してください。また、ホームディレクトリがグループや他者から書き込み可能になっていると OpenSSH の StrictModes により拒絶されます。

sshd起動時に 'Bad configuration option' や 'Unsupported algorithm' が出力され失敗する。

'sudo /usr/sbin/sshd -t' を実行して廃止されたディレクティブや非対応の暗号スイートを特定してください。古いバージョンのOpenSSH(7.6未満など)では curve25519 や最新の耐量子KEXに対応していません。

デフォルトポート22を変更した後に接続拒否(Connection refused)やタイムアウトが発生する。

新しいポートに対するファイアウォール規則 ('ufw allow <port>/tcp' や 'nft add rule ...') を更新してください。SELinuxが有効な場合は 'semanage port -a -t ssh_port_t -p tcp <port>' でポリシーを更新する必要があります。

よくある質問 (FAQ)

「PermitRootLogin no」と「prohibit-password」のセキュリティ上の違いは何ですか?▼

「no」はすべての認証方式でrootログインを完全に遮断し、一般ユーザーでログイン後にsudoを実行することを強制します。「prohibit-password」はパスワード認証のみを無効化し、公開鍵認証によるrootログインは許可するため、自動バックアップジョブなどで活用されます。

なぜCBC暗号やMD5/SHA-1 MACは無効化すべきなのですか?▼

Cipher Block Chaining (CBC) モードはパディングオラクル攻撃(CVE-2008-5161など)による平文復元リスクが存在します。また、MD5やSHA-1ハッシュは実用的な衝突攻撃が可能であり、PCI-DSS v4.0やSOC 2、NIST SP 800-53などのセキュリティ標準で非推奨とされています。

稼働中のOpenSSHサーバーで実際に適用されている実行時設定を確認するにはどうすればよいですか?▼

サーバー上で 'sshd -T' を実行してください。静的な設定ファイルを読み取るのとは異なり、'sshd -T' はデフォルト値や条件付き評価を含め、OpenSSHデーモンが現在有効と判断しているすべての実行時パラメータを一覧表示します。

MaxAuthTries はブルートフォース攻撃防御にどう役立ちますか?▼

MaxAuthTries を小さな値(3など)に制限することで、1回の接続試行で許可される認証失敗回数を厳格に抑えます。fail2ban や nftables と組み合わせることで、自動化されたクレデンシャルスタッフィングや鍵総当たり攻撃を即座にブロックできます。

関連するおすすめ開発ツール

すべてのツール →
Linuxセキュリティ&インフラ自動化セキュリティ

Ubuntu UFW のファイアウォール規則、デフォルト遮断ポリシー、レート制限、ポート転送、自動実行可能な Bash スクリプトをブラウザ上で安全に生成します。

ツールを開く→
Linux iptables ファイアウォールルール構築・シェルスクリプト生成セキュリティ

INPUT/FORWARD/OUTPUTチェーン、ステートフルパケット検査、SYN Flood防御、NATポートフォワーディング、自動シェルスクリプト出力。

ツールを開く→
DNS SPF (Sender Policy Framework) レコードビルダー&解説 技術者ガイドセキュリティ

RFC 7208準拠のSPF TXTレコードを生成・検証。IPv4/IPv6 CIDRブロック、MX、A、includeメカニズム、SoftFail/HardFail強制ポリシーの設計とDNS 10回ルックアップ制限対策。

ツールを開く→
DNS DMARCポリシーレコードビルダー&構文バリデータセキュリティ

ポリシー適用(none/quarantine/reject)、rua/ruf集約レポート、アライメントタグを備えたRFC 7489準拠のDMARC DNS TXTレコードを生成・検証します。

ツールを開く→
DNS CAA(認証局承認)レコードジェネレーターセキュリティ

RFC 8659 に準拠した DNS CAA レコードを生成し、SSL/TLS 証明書の発行権限を信頼できる認証局(Let's Encrypt、DigiCert、Sectigo など)に限定します。

ツールを開く→
DNS DKIM TXTレコード生成&セレクタ設計 完全セキュリティ

RFC 6376準拠のDNS DKIM TXTレコード(v=DKIM1; k=rsa; p=...)の構築、セレクタ命名規則、255文字制限の分割手法、および認証検証手順を解説します。

ツールを開く→