!["인증 거부됨: /home/user 디렉토리에 대한 잘못된 소유권 또는 모드" - "잘못된" 권한에도 불구하고 sshd가 인증을 수락하도록 강제하는 방법은 무엇입니까?](https://linux55.com/image/206509/%22%EC%9D%B8%EC%A6%9D%20%EA%B1%B0%EB%B6%80%EB%90%A8%3A%20%2Fhome%2Fuser%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EC%97%90%20%EB%8C%80%ED%95%9C%20%EC%9E%98%EB%AA%BB%EB%90%9C%20%EC%86%8C%EC%9C%A0%EA%B6%8C%20%EB%98%90%EB%8A%94%20%EB%AA%A8%EB%93%9C%22%20-%20%22%EC%9E%98%EB%AA%BB%EB%90%9C%22%20%EA%B6%8C%ED%95%9C%EC%97%90%EB%8F%84%20%EB%B6%88%EA%B5%AC%ED%95%98%EA%B3%A0%20sshd%EA%B0%80%20%EC%9D%B8%EC%A6%9D%EC%9D%84%20%EC%88%98%EB%9D%BD%ED%95%98%EB%8F%84%EB%A1%9D%20%EA%B0%95%EC%A0%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
어떤 이유로 그룹 쓰기가 가능하려면 일부 특정 사용자의 홈 디렉토리가 필요합니다. 그러나 SSH 키를 사용하여 해당 사용자에 로그인하려고 하면 sshd는 인증을 거부합니다.필요홈 디렉토리는 소유자만 쓸 수 있습니다. 그룹 쓰기 가능 또는 전체 쓰기 가능인 경우 sshd는 "인증 거부됨: 디렉토리 /home/user에 대한 소유권 또는 모드가 잘못되었습니다"라는 (악명 높은) 메시지와 함께 인증을 거부합니다.
sshd를 다시 컴파일하는 것 외에 다른 방법이 있나요?힘홈 디렉토리가 그룹 쓰기 가능하더라도 키 인증을 허용합니까? 어쩌면 ssh 키를 사용자의 홈 디렉토리가 아닌 다른 디렉토리에 넣고 sshd에게 해당 키를 사용하라고 지시할 수 있을까요?
답변1
나는 해결책을 직접 찾았습니다. :) 실제로 두 가지 다른 가능성이 있습니다.
첫 번째는 파일에서 옵션을 (기본값은 ) StrictModes
로 설정하는 것입니다 . 이 설정을 사용하면 sshd는 사용자의 홈 디렉터리에 대한 권한을 적용하지 않습니다. 이 접근 방식의 단점은 모든 사용자에게 전역적이라는 것입니다.no
yes
/etc/ssh/sshd_config
두 번째 방법은 AuthorizedKeysCommand
옵션을 사용하는 것입니다. 특정 사용자 이름(첫 번째 매개변수로 스크립트에 전달됨)에 대해 해당 사용자에 대한 인증 키 파일을 발견할 때마다 출력하고 첫 번째 매개변수의 다른 값에 대해서는 간단히 스크립트를 작성해야 합니다. 단순히 아무것도 출력하지 않습니다. 그것은 다음과 같습니다:
#!/bin/sh
if [ "$1" = "user" ]; then
cat /usr/local/etc/users_authorized_keys
fi
예를 들어 스크립트가 배치된 경우 파일 /usr/local/libexec/listkeys
에 다음 줄을 입력해야 합니다 ./etc/ssh/sshd_config
AuthorizedKeysCommand /usr/local/libexec/listkeys
이 솔루션을 사용하면 /home/user
디렉토리에 그룹 쓰기가 가능하고 다른 사용자에게는 홈 디렉토리의 권한이 계속 적용됩니다.