SSH 및 홈 디렉토리 권한


53

학교 서버의 수업 계정 중 하나를 사용하여이 SSH 문제를 해결하는 데 몇 시간이 걸렸습니다.

암호를 입력하지 않고 특정 클래스 계정으로 ssh 할 수 없었으며, 암호없는 인증은 다른 클래스 계정에서 작동했습니다. .ssh / 디렉토리와 모든 내용은 다른 클래스 계정과 동일한 올바른 권한을가집니다.

문제는 내 홈 디렉토리에 설정된 권한이었습니다. 내 HOME 디렉토리에 대한 권한이 .ssh /에 설정된 권한에 관계없이 770으로 설정되면 비밀번호가없는 인증이 작동하지 않지만 755 또는 700으로 설정된 권한으로 작동했습니다.

SSH가 왜 그런지 아는 사람이 있습니까? 홈 디렉토리 권한이 너무 관대하기 때문입니까? 홈 디렉토리가 700보다 더 허용 적으로 설정된 경우 SSH가 공개 / 개인 키로 인증을 거부하는 이유는 무엇입니까?


1
아래 답변을 확인했습니다. 문제는 홈 폴더에 대한 그룹 권한이 잘못 설정되었다는 것입니다 (auth.log의 오류 메시지는 '인증이 거부되었습니다. / home / <user> 디렉토리에 대한 소유권 또는 모드가 잘못되었습니다'). 홈 디렉토리 권한에 대해 SSH가 까다 롭습니다.
action_potato

5
우리가 여기있는 태그 위키에 대해 알고 있습니까? 당신은 클릭하면 ssh를 한 후 learn more, 당신은 SSH가 작동하지 않는 경우 수행 할 작업에 대한 체크리스트를 볼 수 있습니다, 그리고 홈 디렉토리 권한을 언급하고있다.
Gilles

아, 죄송합니다. 몰랐습니다! 고마워요
action_potato

답변:


54

이것이 SSH의 기본 동작입니다. rwx------에 대한 $HOME/.ssh권한을 소유자에게 부여하고 적용 하여 사용자 키를 보호 합니다 $HOME. 해당 소유자 이외의 사용자가 $HOME디렉토리 에 대한 쓰기 권한을 가지고있는 경우,에 대한 권한을 악의적으로 수정 $HOME/.ssh하여 사용자 키를 도용 할 수있는 등의 가능성이 known_hosts있습니다. 요약하면 $HOMESSH가 작동 하려면 다음 권한 이 충분합니다.

  • rwx------
  • rwxr-x---
  • rwxr-xr-x

SSH가 올바르게 작동하지 않고 디렉토리 에 변형이 g+w있거나 o+w존재하는 경우 로그 기능에 경고를 보냅니다 $HOME. 그러나 관리자는 (또는 유사한) 구성 파일 StrictModes no에서 정의하여이 동작을 무시할 수 sshd_config있지만 권장하지는 않습니다 .


1
언급 해 주셔서 감사합니다 StrictModes no. 내 설정에서 ACL은 대상 사용자의 홈 디렉토리와 모든 하위 항목에서 반 권한이있는 사용자 ( u:operator:rwx)의 수정을 허용하도록 구성 되었으며 SSH는 이것을 좋아하지 않았습니다.
intelfx

31

홈 디렉토리의 77x는 올바른 GID를 가진 모든 사람이 .ssh 디렉토리를 이동하여 다른 디렉토리로 바꿀 수 있음을 의미합니다. 올바른 GID를 가진 사용자는 홈 디렉토리에 대한 쓰기 / 실행 권한이 있으므로 파일 / 디렉토리의 이름을 바꾸거나 작성할 수 있습니다.

SSH는 권한과 관련하여 매우 까다 롭습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.