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에 인쇄되므로 어떤 파일이 사용되고 있는지 알려주는 것과 같은 오류가 있음을 기억하십시오.