OpenSSH_5.3p1을 사용하여 CentOS 6.9를 실행하고 동일한 홈 디렉터리(htdocs에 설치됨)를 가진 외부 사용자를 위한 chroot 계정을 생성하고 있습니다. 문제는 파일이 .ssh/authorized_keys2
첫 번째 사용자의 소유라는 것입니다(그리고 이는 이미 작동합니다). 다른 사용자도 사용할 수 있도록 하려면 어떻게 해야 합니까?
AuthorizedKeysFile
sshd_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
. 아마도 다음과 같이 하는 것이 더 나을 것입니다:no
authorized_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
이는 루트로 파일을 터치하여 파일을 비워두는 것을 의미할 수 있습니다.