비표준 위치의 인증 키

비표준 위치의 인증 키

인증 키는 일반적으로 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/AKdrwx------

내가 무엇을 놓치고 있나요? 이것이 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
    

관련 정보