sshd: "호스트 키 alg 없음"이 수정되었지만 여전히 혼란스럽습니다.

sshd: "호스트 키 alg 없음"이 수정되었지만 여전히 혼란스럽습니다.

분명히 Fedora 35에는 HostKeyAlgorithms 또는 PubkeyAcceptedKeyTypes에 ssh-rsa가 나열되어 있지 않으므로 이전 CentOS 6 시스템에서 ssh를 시도하면 오류가 발생합니다.

$ ssh as1s16.intra.corp.us
no hostkey alg

그래서 /etc/ssh/sshd_config에 포함 후 옵션을 추가했습니다.

Include /etc/ssh/sshd_config.d/*.conf

HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa

하지만 같은 오류가 발생했습니다. 그런 다음 sshd를 다음과 같이 실행합니다.

# /usr/sbin/sshd -ddd
...
debug3: /etc/ssh/sshd_config:20 setting HostKeyAlgorithms +ssh-rsa
debug3: /etc/ssh/sshd_config:21 setting PubkeyAcceptedKeyTypes +ssh-rsa
...
debug1: SELinux support disabled [preauth]
...
debug3: append_hostkey_type: ssh-rsa key not permitted by HostkeyAlgorithms [preauth]
debug1: list_hostkey_types: rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519 [preauth]

하지만 같은 오류가 발생했습니다. 그런 다음 다음과 같이 sshd를 실행하는 옵션을 제거했습니다.

# /usr/sbin/sshd -ddd -oHostKeyAlgorithms=ssh-rsa

효과가 있었습니다. CentOS 6 클라이언트에서 성공적으로 SSH에 접속할 수 있습니다.

그런 다음 포함 앞에 옵션을 넣습니다.

HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa

# To modify the system-wide sshd configuration, create a  *.conf  file under
#  /etc/ssh/sshd_config.d/  which will be automatically included below
Include /etc/ssh/sshd_config.d/*.conf

효과가 있었습니다.

왜 이러한 지시문을 포함 앞에 넣어야 합니까? 기본값을 무시하면 안 되나요?

답변1

표현이 매우 명확하지는 않지만 config.d/*디렉토리는 "시스템 전체"가 아닌 특정 클라이언트/사용자 또는 들어오는 인터페이스/포트에 대해 별도의 구성 파일을 허용하는 것으로 의심됩니다. 이는 apache/httpd 및 nginx(및 아마도 그 이상)에서 디렉토리를 사용하는 것과 유사하며 sites/*, 각 가상 호스트 또는 애플리케이션을 개별적으로 구성할 수 있지만 여전히 단일 서버에 의해 지원됩니다.해당 파일 보기일치하는 줄(다음에는 다른 실제 줄 = 일치 없음, 주석 또는 공백이 와야 함)이 포함되어 있는지 확인하세요. 이는 전체 연결이 아닌 일부 연결에만 적용된다는 의미입니다.

포함하다텍스트입니다. 파일이 있는 경우

blich
Include file*
blech

blich와 blech는 포함되지 않습니다.성냥줄에 있지만 적어도 일부 파일은 이 작업을 수행하고 블렉은 파일 연결에서 마지막 Match 블록의 일부가 됩니다. 따라서 블렉의 설정은 해당 일치 조건을 충족하는 들어오는 연결에만 적용됩니다. 이는 테스트 연결에서 분명히 수행됩니다. 아니다.

SSHD 설정을 "전역"으로 설정하려면 일치하는 줄 앞에 설정을 넣어야 하며, 포함된 파일에 일치하는 줄이 포함되어 있으면 포함 앞에 전역 설정을 넣어야 한다는 뜻입니다.

구성 파일의 모든 설정(사용됨)은 프로그램의 기본 설정보다 우선 적용됩니다. 구성 파일에 동일한 설정을 여러 번 배치하려면(Match 블록 앞/외부) 다음을 사용하십시오.첫 번째하나가 마지막이 아니므로 이전의 "기본값"(파일에 있는 경우 전혀 기본값이 아님)을 재정의하려는 아이디어는 작동하지 않습니다. 후속 일치 블록의 조건이 충족되는 경우에만 첫 번째 일치 블록을 덮어씁니다.

추신: Fedora가 최첨단이고OpenSSH가 최근에 마침내 이를 변경했습니다.경고(협박?) 이후 그들은 1년 반 전 8.2부터 이런 짓을 해왔습니다.

답변2

나는 다음을 사용했다:

HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa

/etc/ssh/sshd_config에서 sshd를 다시 시작하세요.

관련 정보