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

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

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

AuthorizedKeysFilesshd_config에 여러 파일 경로를 추가하려고 시도했지만 오류가 발생했습니다 garbage at end of line.

두 번째 사용자에 대한 일치 블록을 AuthorizedKeysFile추가하려고 시도했지만 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연결 설정 중에 대체된 토큰 형식이 포함될 수 있습니다.. 다음 태그가 정의됩니다. %%text 로 대체되고 %, %h인증되는 사용자의 홈 디렉터리로 대체되며,%u이 사용자의 사용자 이름으로 바꾸십시오.. 확장 후에는 AuthorizedKeysFile절대 경로 또는 사용자 홈 디렉터리에 대한 상대 경로로 처리됩니다. 여러 파일을 공백으로 구분하여 나열할 수 있습니다. 또는 none파일에서 사용자 키 확인을 건너뛰도록 이 옵션을 설정할 수 있습니다. 기본값은 입니다 .ssh/authorized_keys .ssh/authorized_keys2.

내 강조.

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

AuthorizedKeysFile    .ssh/%u_authorized_keys

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

권한에 대한 참고 사항

~에서국민들:

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

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

AuthorizedKeysFile    .ssh_%u/authorized_keys

.ssh_foo/사용자에 대한 읽기/쓰기 foo전용 디렉터리를 만듭니다.foo


.ssh/authorized_keys허용 여부도 선택할 수 있습니다.

AuthorizedKeysFile    .ssh/authorized_keys    .ssh_%u/authorized_keys

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

관련 정보