sshd_config - StrictModes 选项 - 不好禁用?

sshd_config - StrictModes 选项 - 不好禁用?

我的用例是为网站管理员拥有一个共享帐户(名为域),但只有一位网站管理员是主要数据的“所有者”,并定义谁可以通过编辑授权密钥登录共享帐户。

问题是StrictModes yes会抱怨共享帐户的 .ssh/authorized_keys 所有权,因为它是“所有者”用户的所有者。

目前我有StrictModes yes,但我使用 AuthorizedKeysCommand 使 sshd 与 .ssh/authorized_keys 一起工作,并且不会抱怨所有权不当。

什么更好 - 禁用StrictModes或有我的解决方法?

这是共享帐户的匹配:

Match Group *,!sftpuser,!sshuser
        ChrootDirectory %h # eg: /sites/<domain> # symlink to real dir in /sites/users/<user>/www/<domain>
        ForceCommand internal-sftp -u 0002 -d / -l INFO # here $HOME from /etc/passwd is broken, thus '-d /'
        # workaround - using script to validate ssh keys because 'StrictModes yes'
        # and we want authorized_key be owner by different user
        AuthorizedKeysCommand /etc/ssh/authorized_keys/bin/authorize_domain_sshkey %u
        AuthorizedKeysCommandUser %u

目录布局是这样的:

/sites/users/<owner>/home/<owner> - owned by <owner>
/sites/users/<owner>/www/<domain>/.ssh - owned by <root>
/sites/users/<owner>/www/<domain>/.ssh/authorized_keys - owned by <owner>
/sites/users/<owner>/www/<domain>/htdocs - owned by <owner>/<domain>

共享帐户有rwX,因此可以修改'htdocs'中的数据

现在它的工作原理是这样的:

  • $owner 将新的公共 ssh 密钥放入他的 $HOME/../../www//.ssh/authorized_keys 中
  • sftp $域@主机
  • $domain 被 chroot 到对应于上面 /sites/users/$owner/www/$domain 的目录中

相关内容