동일한 홈 디렉토리를 가진 여러 chroot 사용자에 대한 authenticate_keys

동일한 홈 디렉토리를 가진 여러 chroot 사용자에 대한 authenticate_keys

우리는 OpenSSH_5.3p1과 함께 CentOS 6.9를 실행하고 있으며 동일한 홈 디렉터리(htdocs에 마운트됨)를 사용하여 외부 사용자를 위한 루트 계정을 생성했습니다. 문제는 파일이 .ssh/authorized_keys2첫 번째 사용자의 소유라는 것입니다(그리고 이것은 이미 작동합니다). 다른 사용자가 작동하도록 하려면 어떻게 해야 합니까?

여러 파일 경로를 사용하여 sshd_config에 추가하려고 했는데 AuthorizedKeysFile오류가 발생했습니다 garbage at end of line.

두 번째 사용자의 일치 블록에 AuthorizedKeysFilein을 추가하려고 했는데 오류가 발생했습니다 .sshd_config'AuthorizedKeysFile' is not allowed within a Match block

홈 디렉토리를 변경할 수 없습니다. 그렇지 않으면 경로가 실제 개발 경로와 다르기 때문입니다.

해결 방법에 대한 제안이 있으십니까? OpenSSH를 여러 항목을 지원하는 최신 버전으로 업그레이드해야 할 수 있습니까 AuthorizedKeysFile(rpm으로 빌드해야 할 것 같습니다)? 이후 보안 업데이트는 어떻게 되나요?

답변1

한 가지 옵션은 토큰을 사용하여 각 사용자에게 고유한 authorized_keys파일을 제공하는 것입니다.

에서남자 sshd_config:

AuthorizedKeysFile

사용자 인증에 사용할 수 있는 공개 키가 포함된 파일을 지정합니다. 형식은 의 AUTHORIZED_KEYS FILE FORMAT 섹션에 설명되어 있습니다 sshd(8). AuthorizedKeysFile%T연결 설정 중에 대체되는 형식의 토큰을 포함할 수 있습니다.. 다음 토큰이 정의됩니다. %%리터럴로 대체되고 %, %h인증되는 사용자의 홈 디렉터리로 대체됩니다.%u해당 사용자의 사용자 이름으로 대체됩니다.. 확장 후에는 AuthorizedKeysFile절대 경로 또는 사용자 홈 디렉터리에 대한 상대 경로로 간주됩니다. 공백으로 구분하여 여러 파일을 나열할 수 있습니다. 또는 이 옵션을 로 설정하여 none파일에서 사용자 키 확인을 건너뛸 수도 있습니다 . 기본값은 입니다 .ssh/authorized_keys .ssh/authorized_keys2.

내 강조.

따라서 다음을 설정할 수 있습니다.

AuthorizedKeysFile    .ssh/%u_authorized_keys

그런 다음 사용자를 위해 파일을 foo만듭니다 .authorized_keys.ssh/foo_authorized_keys

권한에 대한 참고 사항

에서남자 sshd:

~/.ssh/authorized_keys
...
이 파일, ~/.ssh디렉터리 또는 사용자의 홈 디렉터리에 다른 사용자가 쓸 수 있는 경우 승인되지 않은 사용자가 파일을 수정하거나 교체할 수 있습니다. 이 경우 sshd는 StrictModes 옵션이 로 설정되지 않은 한 사용을 허용하지 않습니다 no.

.ssh/따라서 키를 외부에 붙이 거나 로 설정 StrictModes해야 할 수도 있습니다 no. 다른 사용자가 다른 사람을 위해 키를 생성하거나 다른 사용자의 인증된 키를 삭제할 수 없도록 설정한 경우 StrictModes. 아마도 다음과 같은 일을 하는 것이 가장 좋을 것입니다:noauthorized_keys

AuthorizedKeysFile    .ssh_%u/authorized_keys

읽기/쓰기 만 가능한 .ssh_foo/사용자용 디렉터리를 만듭니다 .foofoo


.ssh/authorized_keys다음 을 사용하여 허용할지 여부를 선택할 수 있습니다.

AuthorizedKeysFile    .ssh/authorized_keys    .ssh_%u/authorized_keys

이렇게 하면 "일반적인" 형식이 authorized_keys계속 작동할 수 있으며 authorized_keys파일은 사용자가 소유하고 올바른 권한이 있어야 하며 그렇지 않으면 무시됩니다. 여전히 다른 사용자를 위해 파일을 생성하는 것이 불가능해야 한다는 점을 고려하십시오 authorized_keys. 이는 단지 루트로 파일을 터치하여 파일을 비워두는 것을 의미할 수 있습니다.

관련 정보