사용자 정의 사용자 $HOME에 대해 SSH 키 인증 사용

사용자 정의 사용자 $HOME에 대해 SSH 키 인증 사용

$HOME 디렉토리가 /home/.

사용자 홈 페이지는 다른 사용자가 찾고 /pkg/home소유 /pkg하지만 모든 사용자는 에 대한 그룹 액세스 권한을 갖습니다 /pkg. SSHD 는 사용자가 전체 경로의 소유자가 아니기 때문에 authorized_keys(예: ) 에 대한 액세스를 제한하는 것 같습니다 ./pkg/home/usera/.sshd/authorized_keys

sshd_config이 한도를 변경할 수 있는 옵션이 있나요 ?

답변1

전부 아니면 전무: 이 StrictModes옵션을 끄면 sshd는 어떤 파일 모드도 확인하지 않습니다. 그룹 쓰기 가능 디렉터리(사용자가 그룹에 혼자 있는 경우 괜찮음)와 같은 일부 이상한 경우가 괜찮다고 말할 수 있는 방법은 없습니다.

~/.ssh/authorized_keysOpenSSH는 포함된 디렉터리의 권한과 소유권을 반복적으로 확인합니다. 그러나 홈 디렉터리에 도달하면 비교가 중지됩니다. 예를 들어, 권한 부여 파일이 사용자의 홈 디렉토리인 기존 배열에서는 합계만 /home/joe/.ssh/authorized_keys확인 됩니다 ./home/joe/home/joe/.ssh/authorized_keys/home/joe/.ssh/home/joe

따라서 귀하의 시나리오는 매우 의심스럽더라도( /pkg필요한 경우 다른 그룹 권한을 가지고 루트가 소유해야 함) SSH에 영향을 주어서는 안 됩니다.

심볼릭 링크가 포함된 경우 ssh는 검사를 시작하기 전에 모든 심볼릭 링크를 확장합니다.

시스템 로그에 관련 정보가 있을 수 있습니다. 실패한 로그인 시도로 인해 로그 메시지가 나타나는지 확인하십시오.

사용자 정의 포트( )에서 디버그 모드 데몬을 실행하여 sshd -d -p 2222SSH 버전이 내 버전과 동일한 검사를 수행하는지 확인하세요(OpenSSH 5.5p1의 소스 코드를 살펴봤습니다) . strace -f -efile sshd -d -p 2222서버가 권한을 확인하는 파일을 확인해야 하는 경우 사용합니다. 이러한 권한 확인이 문제가 되지 않으면 -d플래그를 더 추가하는 것이 도움이 될 수 있습니다.

.sshAppArmor가 있는 경우 SSH 서버가 사용자 파일 디렉터리의 파일을 읽지 못하도록 제한할 수도 있습니다 . AppArmor 및 홈 디렉터리가 비표준 위치에 있는 경우 SSH뿐만 아니라 AppArmor 정책을 업데이트해야 합니다. 바라보다.Xauthority를 ​​읽을 수 없기 때문에 Evince를 시작할 수 없습니다..

답변2

/pkg/의 소유자가 누구인지는 중요하지 않습니다. 소유하면 문제 등이 usera발생합니다 . 따라서 SSHD가 파일을 userb사용하지 못하도록 막는 다른 요인이 있어야 합니다 . authorized_keys파일이 쓰기 가능한지 확인해야합니다오직소유자에 의해 그리고 해당 사용자가 소유한 경우. 모든 상위 디렉토리에도 동일하게 적용됩니다.

답변3

"/data"를 사용자 디렉토리의 기본 디렉토리로 사용하여 동일한 문제가 발생했습니다. 나에게는 "restorecon -R -v ~/.ssh"를 실행하는 것만으로는 충분하지 않았습니다. 우선 달려야지

# semanage fcontext -a -e /home /data

그런 다음 루트로(또한 루트로, /data 디렉터리에는 루트가 소유한 디렉터리가 포함되어 있으므로)

# restorecon -R -v /data

답변4

다른 답변 외에도 sshd 로그를 확인하고 폴더 및 파일에 대한 올바른 권한을 설정하십시오.

$ chown usera /pkg/home/usera
$ chmod go-w  /pkg/home/usera
$ chmod 700   /pkg/home/usera/.ssh
$ chmod 600   /pkg/home/usera/.ssh/authorized_keys

관련 정보