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
与えられた答えに加えて:
- デバッグモードが役に立ちます。
[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フラグが指定されている場合)。
/etc/ssh/sshd_config line 91: Unsupported option GSSAPIAuthentication /etc/ssh/sshd_config line 93: Unsupported option GSSAPICleanupCredentials
非常に当然ですが、設定をデバッグしている場合は、sshdを実行するとstderrが/var/log/messagesに印刷されます。