어떤 이유로 그룹 쓰기가 가능하려면 일부 특정 사용자의 홈 디렉토리가 필요합니다. 그러나 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
디렉토리에 그룹 쓰기가 가능하고 다른 사용자에게는 홈 디렉토리의 권한이 계속 적용됩니다.