sshd 구성 확인


19

구성을 sshd어떻게 확인할 수 있습니까?

예를 들어, 이러한 설정을 설정하고 적용하고 싶습니다.

AllowUsers user1 user2 
PasswordAuthentication no
PermitRootLogin no

파일의 내용을 수동으로 확인하는 유일한 방법입니까 sshd_config, 아니면 확인할 수 sshd있습니까?


2
확인한다는 것은 무슨 뜻입니까? 구성 변경이 유효한지 확인하는 방법이 있습니까? lint 와 같은 유효한 구성을 확인하는 도구가 있는지 묻고 있습니까?
Zoredache

2
나는 그 질문이 명확하지 않다고 생각하지 않는다 : 실제로 설정 옵션에 어떤 값이 있는지 확인할 방법이 없다. 당신이 볼 경우 #UseLogin no당신 ssd_config 파일에, 그것은 UseLogin이 예 없거나 UseLogin 더 의미? 컴파일하는 동안 변경 될 수있는 기본값을 찾으려면 매뉴얼을 참조하십시오. 지금까지 쓸모없는 질문은 ...
Xorax

답변:


27

-T이를 수행 하는 명령 행 옵션으로 호출 된 확장 테스트 모드 가 있습니다. 예를 들면 다음과 같습니다.

% sudo sshd -T | egrep -i 'allowusers|passwordauth|permitroot'
permitrootlogin yes
passwordauthentication yes

이 옵션은 2008 년 이래 Portable OpenSSH에 존재했습니다. 커밋 e7140f2 . 이것은 2008 년 7 월에 만들어진 5.1p1과 함께 발표되었다. 5.1 릴리스 정보는 현재 지원되는 거의 모든 OpenSSH 서버 설치에 존재합니다.


3
그러나 /etc/ssh/sshd_config파일의 기본 설정 + 설정이 표시 됩니다. 파일의 설정은 시스템에서 이와 sshd비슷한 항목으로 다시로드 될 때까지 실제로 활성화되지 않았을 /etc/init.d/ssh reload수 있습니다.
mivk

2
@mivk 좋은 지적이지만 변경 사항을 작성한 후 정확하게 적용하기 전에 이러한 종류의 명령을 사용하지만 실제로 적용하기 전에 일반적으로 발생하는 일을 확인하고 싶기 때문에 코스와 거의 동일합니다. 예를 들어 apache2ctl -S같은 방식으로 작동합니다.
Josip Rodin

4

이것이 모든 서버 정의를 덤프하지는 않지만 자세한 디버그 플래그를 사용하여 서버에 연결할 수 있습니다 ssh -v user@server. sshd 구성에서 활성화 된 옵션을 반영하는 많은 정보가 제공됩니다.

예를 들어, -v 스위치 를 사용하여이 연결의 출력 (키 서명, 도메인 및 IP 주소가 의도적으로 위장 된)을 살펴보십시오 .

OpenSSH_6.0p1, OpenSSL 0.9.8w 23 Apr 2012
debug1: Reading configuration data /home/claudio/.ssh/config
debug1: /home/claudio/.ssh/config line 13: Applying options for serv01
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to somedomain.com [185.113.29.221] port 22.
debug1: Connection established.
debug1: identity file /home/claudio/.ssh/id_dsa type 2
debug1: identity file /home/claudio/.ssh/id_dsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9
debug1: match: OpenSSH_5.9 pat OpenSSH_5*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.0
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA 3a:0d:b8:18:ca:67:4c:54:0f:c8:b2:1e:48:53:69:28
debug1: Host '[somedomain.com]:22' is known and matches the ECDSA host key.
debug1: Found key in /home/claudio/.ssh/known_hosts:7
Warning: Permanently added the ECDSA host key for IP address '[185.113.29.221]:22' to the list of known hosts.
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Offering DSA public key: /home/claudio/.ssh/id_dsa
debug1: Server accepts key: pkalg ssh-dss blen 433
debug1: Authentication succeeded (publickey).
Authenticated to somedomain.com ([185.113.29.221]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.

여기에서 허용되는 인증 방법은 publickey, password, keyboard-interactive입니다. 또한이 서버에서 로밍을 허용하지 않으며 사용자 claudio 가 공개 키를 사용하여 연결할 수 있음을 알 수 있습니다.

더 많은 "v"문자를 지정하여 정보 출력 수준을 높일 수 있지만 원하는 수준보다 더 낮은 수준의 정보를 얻을 수 있습니다.


3

sshd의 구성은 일반적으로 다음 파일에 /etc/ssh/sshd_config있습니다..

런타임 구성을 조회하기 위해 확장 테스트 모드 sshd -T를 사용하여 클라이언트 일치 설정을 테스트 할 수도 있습니다.


1
나는 이것이 그가 묻는 질문에 대답하지 않는다고 생각하지만 그의 질문은 완전히 명확하지 않습니다.
Zoredache

1
구성을 확인하는 방법을 묻는 것 같습니다. 내가 아는 한 런타임에 sshd의 구성을 쿼리하는 방법은 없습니다. 따라서 구성은 내가 언급 한 파일에서만 찾을 수 있습니다.
gparent

당신이 말했듯이, 질문은 의미가 없으므로 OP가 파일의 위치 또는 정확한 이름을 알지 못할 것이라고 생각했습니다.
gparent

4 년이 지난 후에도 절대 정당한 이유없이 저에게 의견을 줄이려면 상식을 사용하고 질문 기록을 확인한 다음 수정 사항을 제안하십시오.
gparent

@gparent 원래 질문은 다소 모호하고 구성 파일 경로에 오타가 있으므로 편집 기능을 사용하여 질문에서 해당 문자열을 수정해야합니다. 그리고 어느 쪽이든, 검증 질문에 대한 답변은 이제 위에 보여집니다
Josip Rodin

2

실행중인 sshd 인스턴스의 구성을 쿼리하는 알려진 방법은 없습니다 .opensh 서버를 참조하는 경우 생각합니다. 수행하려는 작업에 따라 -t 플래그를 사용하여 구성 파일을 테스트하여 서버를 다시 시작하기 전에 구성 파일이 유효한지 확인하여 esp가 쫓겨 나지 않도록 할 수 있습니다. 서버에 대한 대역 외 액세스 권한이없는 경우


2

다른 답변에서 제안한대로 / etc / ssh / sshd_config 파일을 볼 때 발생하는 문제는 전체 구성을 반드시 포함 할 필요는 없다는 것입니다. 이 파일에는 기본값을 재정의하도록 설정하려는 구성 변수의 값이 포함되어 있으며, 출하시 sshd에 내장 된 기본값이 주석으로 포함되어 있습니다.

제공된 버전 대신 사용자 정의 구성 파일을 설치하면 sshd로 컴파일 된 기본값을 볼 수 없으며 사용자 정의 빌드 인 경우 기본값이 표시되는 sshd_config의 주석과 일치하지 않을 수 있습니다.

또한 -f 옵션을 사용하여 대체 구성 파일을 사용하여 sshd를 완벽하게 실행할 수 있으므로 / etc / ssh / sshd_config에 저장된 파일은 현재 설정을 반영하지 않을 수 있습니다.

이것은 질문을 매우 유효하게 만들고 내가 아는 한 확실하게 대답 할 수 없습니다.


이 모든 것이 사실이지만 기본 구성이 컴파일 된 패키지에서 설치된 sshd를 실행하는 서버의 99 %에는 적용되지 않습니다.
Andrew Schulman

귀하의 답변은 유용하지만 질문은 확실히 확실하게 답변 될 수 있습니다.
Josip Rodin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.