Debian 11을 Debian 12로 성공적으로 업그레이드했습니다.
이상한 일이 일어나고 있어요
일부 설정을 무시하는 conf가 있습니다
루트 로그인을 비활성화했습니다
포트 1122로 이동했습니다.
인증에 비밀번호 사용 비활성화
키를 사용하여 인증 활성화
root@localhost:/etc/ssh/ssh_config.d# cat /etc/ssh/sshd_config.d/realtebo.conf # Override from realtebo Port 1122 PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes
지금 나는
- 포트 1122를 사용해야 합니다.
- 루트를 사용하여 로그인할 수 없습니다
- 비밀번호를 사용하여 로그인할 수 있습니다
- pubkey를 사용하여 로그인할 수 없습니다
이 두 가지 이상한 행동의 원인은 무엇입니까?
기본 구성 파일에 내 구성 파일이 포함되어 있는지 확인했습니다.
어쨌든 [피하고 싶은] 기본 구성 파일을 직접 변경하면 서버는 더 이상 비밀번호를 사용한 로그인을 허용하지 않지만 여전히 내 공개 키를 거부합니다. 여전히 거기에 있고 authorized_keys
모든 Debian 11에서 사용하는 rsa pub 키가 있습니다.
Debian 12에서 OpenSSH의 변경된 사항은 무엇입니까?
답변1
- 비밀번호를 사용하여 로그인할 수 있습니다
기본 /etc/ssh/sshd_config
파일에는 다음과 같은 주석이 있습니다.
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the KbdInteractiveAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via KbdInteractiveAuthentication may bypass
# the setting of "PermitRootLogin prohibit-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and KbdInteractiveAuthentication to 'no'.
UsePAM yes
구성에서 비활성화하지 않으면 KbdInteractiveAuthentication
PAM이 원래 시도/응답 유형 인증 모듈에 사용되었던 약간 다른 코드 경로를 통해 비밀번호 인증과 동등한 작업을 수행할 수 있습니다. 그러나 기술적으로 "비밀번호 표시" 프롬프트는 어려울 수 있습니다. "유효한 비밀번호를 입력하세요"로 효과적으로 대응하세요.
기본 구성에는 주석 처리되지 않은 가 포함되어야 KbdInteractiveAuthentication no
하지만 시도해 보세요.
diff -u /usr/share/openssh/sshd_config /etc/ssh/sshd_config
현재 기본 sshd
프로필이 실제로 기본 프로필과 일치하는지 다시 확인하세요.
또한 비밀번호 인증이 비활성화된 경우 기본 동작은 sshd
비밀번호 프롬프트를 계속 표시하는 것입니다. 이 경우 프롬프트는 완전히 가짜이며 유일한 목적은 침입자가 비밀번호를 추측하려고 헛된 시도를 하도록 만드는 것입니다. 따라서 비밀번호 프롬프트가 표시된다고 해서 반드시 비밀번호 인증이 실제로 가능하다는 의미는 아닙니다.
이것이 쓸모없다고 생각되면 AuthenticationMethods publickey
계정에 추가하여 비밀번호 프롬프트(가짜든 진짜든)를 표시하는 것조차 realtebo.conf
차단할 수 있습니다.sshd
- pubkey를 사용하여 로그인할 수 없습니다
새 버전에는 새로운 기본 PubkeyAcceptedAlgorithms 설정이 있습니다. 길지만 더 주목할 점은아니요다음을 포함합니다(에서 인용 man sshd_config
):
공개 키 승인 알고리즘
[...]
이 옵션의 기본값은 다음과 같습니다.
[email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], ssh-ed25519, ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, [email protected], [email protected], rsa-sha2-512,rsa-sha2-256
특히 오래된 대기 기계 , ssh-rsa
그리고ssh-dss
더 이상 기본적으로 존재하지 않습니다.필요한 경우 계속 추가할 수 있으며 귀하의 경우에는 추가하는 것이 도움이 될 수 있습니다. 하지만 그렇다면 ssh-rsa
공개 키 알고리즘을 지원하는 버전으로 SSH 클라이언트를 업데이트해야 합니다. rsa-sha2-*
기존 키는 괜찮습니다. 다만 키가 사용하는 알고리즘을 업그레이드해야 할 뿐입니다.
따라서 두 가지 설정을 추가해 볼 수 있습니다 /etc/ssh/sshd_config.d/realtebo.conf
.
KbdInteractiveAuthentication no
PubkeyAcceptedAlgorithms +ssh-rsa
이후에도 공개 키 인증이 작동하지 않으면 journalctl -u ssh.service
기록된 메시지 보기를 사용하여 sshd
공개 키가 거부된 이유를 정확히 알아보세요.
(예, 실행 중인 서비스의 이름은 sshd
실제로 RHEL/Fedora 및 ssh.service
그 파생 상품의 이름이 아니라 Debian sshd.service
및 그 파생 상품의 이름입니다. 역사적 이유입니다. 어리석은 일이지만 그게 인생입니다.)
sshd
를 실행하면 효과적인 구성을 볼 수 있습니다 sshd -T
. 구성에 조건이 포함된 경우 이러한 조건에 필요한 정보를 제공하는 스타일 옵션을 Match
추가하여 조건 일치가 각 경우에 유효한 구성에 어떤 영향을 미치는지 확인할 수 있습니다. 자세한 내용은 -C keyword=value
참조하십시오 .man sshd