问题描述

配置 WordPress 在应用程序 (即 WordPress) 中进行更新是理想的,因为它的方便。不过,我对这些要求感到困扰。在 installing ssh2 for php 之后出现的请求字段不仅要求我的公钥,还要求我的私钥。我会认为,最多只需要公钥。

WordPress 实际上是否给我的私钥给服务器,以便服务器可以将正确的软件包上传到我的服务器?我熟悉 SSH 私有/公钥如何工作,这就是为什么我很困惑为什么 WordPress 需要这个。如果有什么,我会认为更新的机制甚至不需要这个协议; 它只会使用 http 或 ftp 到包服务器,然后从那里下载/安装/激活。

为什么 WordPress 需要我的 ssh 密钥?这里有安全性吗?

最佳解决方案

本质上,WordPress 需要连接回实际运行的服务器。

WordPress 可以使用几种可能的方式来编写文件,因此在升级过程中可以使用”overwrite” 本身。从安全角度来看,这个过程的重要部分是新文件必须与旧文件具有相同的所有权。

因此,WordPress 首先通过直接写入文件并检查结果所有者是谁执行测试。如果所有者匹配 PHP 文件,那么它知道它可以编写具有正确所有权的文件 (这意味着该进程是文件所有者的”setuid”) 。

如果生成的文件由不同的用户标识 (如果 Apache /PHP 以不同的用户身份运行,如”www” 或”apache” 用户) 拥有,则 WordPress 必须使用不同的方法创建具有正确所有者的文件。

一种方法是简单的 FTP 。如果将 FTP 连接恢复到其所在的服务器,然后通过该文件写入文件,则所生成的文件将由通过 FTP 登录的人员拥有。所以,它提示用户 FTP 信息。

但 FTP 不是很安全。所以如你所见,另一种方法是通过 SSH2 。使用 SSH 库为 PHP,它可以使 SSH 连接以相同的方式返回服务器。这就是为什么它需要一个私钥,因为它正在使用它来使一个传出的连接回到自身。通过进行该连接,它可以设置凭据,并以具有这些凭据的用户的身份写入文件。

如果你担心它有这些键,然后生成一组新的键,并专门用于此目的。

为了回答你的直接问题,不,WordPress 不会”give” 的钥匙在任何地方。它下载升级包,解压缩它,然后使用这些键将连接重新连接到自己的服务器 (基本上是 loopback),然后通过该连接复制文件。在这样做时,凭据意味着文件获得正确的所有权,并避免使主要由 Apache /www /php 进程拥有的 WordPress 文件的安全问题。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。