CentOS8 SSH 公钥认证和 Nginx

CentOS8 SSH 公钥认证和 Nginx

我在使 SSH 公钥身份验证按我希望的方式工作时遇到问题,并且我不知道是否有可能使其工作。

我有几个网站托管在不同的 下/home/$USER。所有 web 文件都在 下/home/$USER/www。问题是,为了让 nginx 能够访问 web 文件(主要是 PHP 文件和静态文件), 的所有权/home/$USER必须为nginx:nginx。但现在如果任何用户想要使用他们的 SSH 密钥(在authorized_keys下列入白名单/home/$USER/.ssh)进行身份验证,他们无法这样做,因为他们的/home/$USER所有者是,nginx:nginx而不是$USER:$USER

有什么方法可以让它工作吗?也许值得一提的是,网站必须放在不同的/home/$USER目录下,而不是放在 下/usr/share/nginx/html

我正在使用 CentOS 8。

答案1

您可以继续NGINX 和 PHP-FPM。我的权限应该是什么?

为了获得可运行(且安全)的设置,PHP-FPM 池用户必须使用属于网站的相应用户名运行。

确定nginx:nginx站点文件的所有权从来都不是一个好主意。

相反,文件由不同的网站用户拥有(每个网站不同)。为了让 NGINX 能够读取文件,您需要将nginx用户添加到每个网站用户的组中:

usermod -a -G example nginx

然后nginx用户就可以读取example用户的网站文件(在其主目录下)。

相关内容