授权密钥在非标准位置

授权密钥在非标准位置

授权密钥通常放在 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
    

相关内容