問題描述
配置 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。