내가 본 것 중 가장 이상한 행동은 다음과 같습니다.
나는 가지고있다:
Linux 사용자 계정을 설정하고 비밀번호와 SSH 키를 설정합니다.
- 사용자에게 홈 디렉터리가 있으면 SSH 키를 사용하여 로그인할 수 있습니다.
이 사용자가 자신의 홈 디렉터리를 소유하지 않으면 다음과 같이
sshd
불평합니다.Authentication refused: bad ownership or modes for directory /path/to/home/user/
Linux 계정 비밀번호를 제거하면 사용자는 SSH 키를 사용하여 로그인할 수 있지만 홈 디렉터리를 소유하지는 않습니다.
와트? 왜 sshd
더 이상 자신의 홈 디렉토리가 있는지 신경 쓰지 않습니까?
답변1
이는 설명하신 것보다 조금 더 복잡합니다(질문에 완전히 답하기 위해 중요한 세부 정보를 많이 생략하셨습니다). 하지만소스 코드좋은 출발점은 다음과 같습니다.
- 공개키 인증을 수행하는 경우에만 실패가 발생합니다.
- 상위 디렉토리는 중요하며 다음과 같은 경우에만 "수락"됩니다.
- 괜찮나요 ?
sshd
stat()
- 디렉토리는 로그인한 사용자 또는
root
Linux(platform_sys_dir_uid()
처리 담당) 가 소유합니다. - 다른 사용자는 해당 디렉토리에 쓸 수 없습니다(소유자에 대해서는 쓰기 비트만 설정할 수 있음).
- 괜찮나요 ?
이것은 기본적으로 처음 두 점에는 적합하지만 세 번째 점에는 맞지 않습니다. 또한 라운드에서 변경하거나 눈치채지 못하는 몇 가지 다른 사항도 있을 것입니다. 서버에서 디버그 로깅을 켜고 조사합니다(또는 편집된 질문에 게시합니다).