sshd -t / -T の使い方

sshd の設定を確認

書き方

sudo sshd -t
sudo sshd -T
sudo sshd -T -C user=ユーザー,addr=アドレス

-t は /etc/ssh/sshd_config と sshd_config.d/*.conf の書き方を確かめ、何も出なければ OK。-T は実際に使われる値を小文字のキーで全部表示します。同じキーは最初に書かれたものが有効なので、先頭で Include される sshd_config.d の値が優先されます。設定は systemctl reload sshd で反映されます。

よく使うオプション

オプション意味
-t設定の書き方を確かめる(何も出なければ OK)
-T実際に使われる値を全部出す
-C user=…,addr=…-T と一緒に使い、その相手のときの値(Match の結果)を出す
-f ファイル確かめる設定ファイルを決める

例

$ sudo sshd -t/etc/ssh/sshd_config line 42: Bad configuration option: PermitRootLogn
/etc/ssh/sshd_config: terminating, 1 bad configuration options

/etc/ssh/sshd_config と sshd_config.d/*.conf の書き方を確かめます。誤りがあると行番号が出ます。

$ sudo sshd -T | grep -E '^(port|permitrootlogin|passwordauthentication) 'port 22
permitrootlogin no
passwordauthentication no

実際に効いている値を確かめます。キーは小文字で出ます。

$ sudo sshd -T -C user=ops,addr=10.0.4.90,host=pc01 | grep allowtcpforwardingallowtcpforwarding yes

Match で相手ごとに変えた設定が、その相手のとき何になるか確かめます。

$ sudo journalctl -u sshd -n 20 --no-pager

sshd が起動しないときは、記録の最後に理由が出ています。

よくある間違い・注意

  • 同じキーは最初に書いたものが効きます。先に読まれる sshd_config.d/*.conf の値が、sshd_config の値より優先されます。
  • 設定を変えたら sshd -t で確かめてから reload します。今つないでいる SSH は切らずに、別の窓で入れるか試します。
  • ポートを変えたら、firewalld と SELinux(semanage port -a -t ssh_port_t)も合わせます。

実際に打って練習する

Linux レベル2 コースの Lv98「障害対応:サービスが起動しない」で覚えます(第8章 障害対応)。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

すべてのレベルが、ゴールド以上のプランで遊べます。

Linux サーバー構築のコマンド一覧(LinuC レベル2 の範囲)へ戻る