openssh sshdはどの設定ファイルを使用しますか?

openssh sshdはどの設定ファイルを使用しますか?

sshdがどの設定ファイルを使用しているかを確認/検証できる場所はどこですか?コマンドを使用して使用する構成ファイルを変更できることを知っていますが、-f現在使用中の構成ファイルをエコーする方法はありますか?それともこれを確認するために見ることができるファイルはありますか?

答え1

@Hauke Lagingのコメントに基づいて書かれています。straceバイナリを実行すると、sshdプログラムの起動方法とアクセスを試みたファイルのデバッグ情報が出力されます。ここからgrepアクセスしたい/ etc /ファイルを一覧表示できます。

$ sudo strace -e trace=file /usr/sbin/sshd |& grep '^open('|grep '/etc/'
open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/etc/ssh/sshd_config", O_RDONLY|O_LARGEFILE) = 3
open("/etc/gai.conf", O_RDONLY)         = 3
open("/etc/nsswitch.conf", O_RDONLY)    = 3
open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3
open("/etc/ssh/ssh_host_rsa_key", O_RDONLY|O_LARGEFILE) = 3
open("/etc/ssh/blacklist.RSA-2048", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("/etc/ssh/ssh_host_dsa_key", O_RDONLY|O_LARGEFILE) = 3
open("/etc/ssh/blacklist.DSA-1024", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("/etc/ssh/ssh_host_ecdsa_key", O_RDONLY|O_LARGEFILE) = 3
open("/etc/ssh/blacklist.ECDSA-256", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)

上記のstrace出力は設定/etc/ssh/sshd_configとして使用されますssh

答え2

与えられた答えに加えて:

  1. デバッグモードが役に立ちます。 [root@ip-10-41-162-92 ~]# /usr/sbin/sshd -df /etc/ssh/sshd_config.test debug1: sshd version OpenSSH_6.7, OpenSSL 1.0.1j 15 Oct 2014 ... debug1: rexec_argv[0]='/usr/sbin/sshd' debug1: rexec_argv[1]='-df' debug1: rexec_argv[2]='/etc/ssh/sshd_config.test' ...

出力は、どのファイルが使用されたかを示します(-fフラグが指定されている場合)。


  1. /etc/ssh/sshd_config line 91: Unsupported option GSSAPIAuthentication /etc/ssh/sshd_config line 93: Unsupported option GSSAPICleanupCredentials 非常に当然ですが、設定をデバッグしている場合は、sshdを実行するとstderrが/var/log/messagesに印刷されます。

関連情報