인증 키는 일반적으로 HOME 디렉터리의 .ssh 아래에 있습니다.
처럼 비표준적인 곳에 두고 싶어요/etc/AK/authorized_keys.archemar
일치 규칙을 사용하여 sshd_config를 설정했습니다.
Match user archemar
ChrootDirectory /exploit/X25
AuthorizedKeysFile /etc/AK/authorized_keys.%u
PasswordAuthentication no
ForceCommand internal-sftp -u 0002
PubkeyAuthentication yes
하지만 비밀번호 없이 로그인할 수 없으며 sshd에서 오류를 보고합니다.
sshd[] Failed publickey for archemar from ... port 41154 ssh2: RSA SHA256:...
명령은 sftp
다음 중 하나 입니다.ssh
sftp -i archemar archemar@localhost
ssh -i archemar -l archemar localhost
Authorized_keys가 일반적인 위치에 있으면 공개 키가 제대로 작동합니다.
파일 승인은
-rw-r--r-- 1 root root 802 Oct 24 10:51 authorized_keys.archemar
디렉토리 /etc/AK
는drwx------
내가 무엇을 놓치고 있나요? 이것이 chroot
문제입니까?
- 운영체제는 Suse 12.4이고,
- 섹션을 마지막에 넣고
sshd_config
다시 시작했는데, - selinux가 비활성화되었습니다.
답변1
sshd에서 부과하는 권한 기대치를 준수해야 합니다.
공개 키가 있는 디렉터리는 최소한 모든 사람이 실행할 수 있어야 합니다.
chmod 711 /etc/AK chown root:root /etc/AK
공개 키는 해당 사용자가 소유해야 하며 다음 권한이 저에게 효과적이었습니다.
chown archemar:root /etc/AK/authorized_keys.archemar chmod 640 /etc/AK/authorized_keys.archemar