우리는 OpenSSH_5.3p1과 함께 CentOS 6.9를 실행하고 있으며 동일한 홈 디렉터리(htdocs에 마운트됨)를 사용하여 외부 사용자를 위한 루트 계정을 생성했습니다. 문제는 파일이 .ssh/authorized_keys2
첫 번째 사용자의 소유라는 것입니다(그리고 이것은 이미 작동합니다). 다른 사용자가 작동하도록 하려면 어떻게 해야 합니까?
여러 파일 경로를 사용하여 sshd_config에 추가하려고 했는데 AuthorizedKeysFile
오류가 발생했습니다 garbage at end of line
.
두 번째 사용자의 일치 블록에 AuthorizedKeysFile
in을 추가하려고 했는데 오류가 발생했습니다 .sshd_config
'AuthorizedKeysFile' is not allowed within a Match block
홈 디렉토리를 변경할 수 없습니다. 그렇지 않으면 경로가 실제 개발 경로와 다르기 때문입니다.
해결 방법에 대한 제안이 있으십니까? OpenSSH를 여러 항목을 지원하는 최신 버전으로 업그레이드해야 할 수 있습니까 AuthorizedKeysFile
(rpm으로 빌드해야 할 것 같습니다)? 이후 보안 업데이트는 어떻게 되나요?
답변1
한 가지 옵션은 토큰을 사용하여 각 사용자에게 고유한 authorized_keys
파일을 제공하는 것입니다.
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
. 아마도 다음과 같은 일을 하는 것이 가장 좋을 것입니다: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
. 이는 단지 루트로 파일을 터치하여 파일을 비워두는 것을 의미할 수 있습니다.