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 yesMatch で相手ごとに変えた設定が、その相手のとき何になるか確かめます。
$ 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章 障害対応)。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。
すべてのレベルが、ゴールド以上のプランで遊べます。