
기본 배포 스크립트를 구현 중이며 sshd_config에 대해 변경해야 할 유일한 변경 사항은 PermitRootLogin yes를 비밀번호 없이 PermitRootLogin으로 변경하는 것입니다. 나는 문서를 읽었으며 이에 대해 언급하지 않았지만 그것이 불가능하다고 말하는 것은 아닙니다.
두 번째 PermitRootLogin을 지정할 수 있나요? 즉, echo '비밀번호 없이 PermitRootLogin' >> /etc/ssh/sshd_config
그렇다면 이것은 안전한가요?
의견을 기반으로 한 업데이트:
1) 파일을 구문 분석하고 변수를 변경할 수 있다는 것을 알고 있습니다. 그래도 내 질문은 여전히 남아 있습니다.
답변1
아니요.
행을 추가하고 로그인할 수 있는지 확인하여 간단히 테스트할 수 있습니다. 그런 다음 첫 번째 발생을 주석 처리하고 서비스를 다시 시작한 다음 다시 테스트할 수 있습니다.
이유:OpenSSH에는 servconf.c
기능이 있습니다
process_server_config_line()
1200-2171행(7.9p1의 경우)process_server_config_line_depth()
1260-2371행(8.3p1의 경우)을 호출하도록 리팩터링되었습니다 .
모든 전역 지시어는 시작 시에만 처리되며 전역 지시어는 한 번만 처리됩니다. 설정은 처음 발생했을 때의 상태로 유지됩니다.
반면에 동일한 지시문을 두 번 사용하면 오해가 발생할 수 있습니다.
파일 구문 분석을 다시 고려해 보세요. 해당하는 경우 전체 파일을 바꿀 수도 있습니다.
답변2
TL;DR 예데비안 및 파생 제품은 초기 포함 파일을 지원합니다.
데비안그리고우분투Include
초기에 " " 지시어 ssh
와 sshd
구성 파일이 있습니다.
/etc/ssh/ssh_config:19:Include /etc/ssh/ssh_config.d/*.conf
/etc/ssh/sshd_config:13:Include /etc/ssh/sshd_config.d/*.conf
나는 이전 답변에 동의합니다. Include
디렉터리 파일이 먼저 처리되는 곳에서 발견된 첫 번째 값이 우선합니다.
echo PermitRootLogin without-password > /etc/ssh/sshd_config.d/PermitRootLogin.conf
답변3
아니요. 대부분의 설정은 처음으로 나타나는 값만 사용합니다. X11Forwarding 설정은 이를 테스트하기 쉬운 설정입니다. 즉, 사용자별 재정의 설정을 활용하여 동일한 작업을 허용할 수도 있습니다. 이들은 일반적으로 하단에 태그가 지정되므로 추가 목표에 더 잘 작동합니다.
즉, 다른 사람들이 언급했듯이 sed가 훨씬 더 깨끗한 솔루션이 될 것입니다.
sed -i 's/PermitRootLogin yes/PermitRootLogin without-password/g' /etc/ssh/sshd_config
답변4
이전 답변을 수정합니다. 현재로서,수동~을 위한sshd_config파일은 "각 키워드에 대해 처음 얻은 값이 사용됩니다"로 시작됩니다. 따라서 다른 사람들이 이미 작성한 것처럼 중복은 무시됩니다.
다음을 사용할 수 있습니다.성냥조건에 따라 전역 설정을 무시하려면 차단하세요. 그만큼허가루트로그인일치 블록에 허용되는 키워드 중 하나입니다.
(내가 사용하고 있는 OS에서 sshd의 기본 구성이포함하다지시문 + glob 패턴, 공급업체 기본값을 별도의 파일로 이동합니다. 따라서 기본값을 무시할 수 있도록 sshd가 중복 키워드를 처리하는 방법을 아는 것이 중요합니다.)