WordPress'in güncellenmesi için neden özel ssh anahtarımın olması gerekiyor?


13

WordPress'i uygulama içinde güncellenecek şekilde yapılandırmak (yani WordPress) rahatlığı nedeniyle benim için idealdir. Yine de, gereksinimlerden rahatsız oluyorum. Php için ssh2 yüklendikten sonra gösterilen istenen alanlar sadece ortak anahtarımı değil, aynı zamanda özel anahtarımı da soruyor. En fazla sadece ortak anahtarın gerekli olacağını düşünürdüm.

WordPress, sunucuma doğru yazılım paketini yükleyebilmesi için özel anahtarımı bir sunucuya veriyor mu? SSH özel / genel anahtarlarının nasıl çalıştığını biliyorum, bu yüzden WordPress'in neden buna ihtiyacı olduğu konusunda kafam karıştı. Bir şey varsa, güncelleme mekanizmasının bu protokole bile ihtiyaç duymayacağını düşünürdüm; paket sunucusuna http veya ftp kullanır ve oradan indirir / kurar / etkinleştirir.

WordPress neden ssh anahtarlarıma ihtiyaç duyuyor? Burada güvenlik kaygıları var mı?

Yanıtlar:


11

Temel olarak, WordPress'in çalıştığı sunucuya tekrar bağlanması gerekir.

WordPress'in dosyaları yazmak ve böylece bir yükseltme sırasında kendini "üzerine yazmak" için kullanabileceği birkaç yol vardır. Güvenlik açısından, bu sürecin önemli kısmı, yeni dosyaların eski dosyalarla aynı sahipliğe sahip olması gerektiğidir.

Bu nedenle, WordPress önce doğrudan bir dosya yazıp ortaya çıkan sahibin kim olduğunu kontrol ederek bir test gerçekleştirir. Sahip, PHP dosyalarıyla eşleşirse, doğru sahipliğe sahip dosyalar yazabileceğini bilir (bu, işlemin dosya sahibine "setuid" olduğu anlamına gelir).

Ortaya çıkan dosya farklı bir kullanıcı kimliğine sahipse (Apache / PHP "www" veya "apache" kullanıcısı gibi farklı bir kullanıcı olarak çalışıyorsa), WordPress ile dosya oluşturmak için farklı bir yöntem kullanmalıdır. doğru sahibi.

Bir yaklaşım basit FTP'dir. Açık olduğu sunucuya bir FTP bağlantısı yaparsa, dosyaları bunun üzerine yazarsa, sonuçta elde edilen dosyalar FTP üzerinden oturum açtığı kişiye ait olur. Bu nedenle, kullanıcıdan FTP bilgilerini ister.

Ancak FTP çok güvenli değil. Bulduğunuz gibi, başka bir yöntem SSH2'dir. PHP için SSH kütüphanesini kullanarak, sunucuya aynı şekilde bir SSH bağlantısı yapabilir. Ve o kendisi için giden bir bağlantı geri yapmak için o kullanıyor, çünkü bir özel anahtar ihtiyacı nedeni budur. Bu bağlantıyı kullanarak kimlik bilgilerini ayarlayabilir ve bu kimlik bilgilerine sahip kullanıcı olarak dosya yazabilir.

Bu anahtarlara sahip olduğundan endişe ediyorsanız, yeni bir anahtar kümesi oluşturun ve bunları yalnızca bu amaç için kullanın.

Doğrudan sorunuza yanıt vermek için hayır, WordPress anahtarları hiçbir yere "vermez". Yükseltme paketini indirir, paketten çıkarır ve ardından bu anahtarları kendi sunucusuna (temel olarak geri döngü) bağlantı kurmak için kullanır ve ardından dosyaları bu bağlantı üzerinden kopyalar. Bunu yaparken, kimlik bilgileri, dosyaların doğru sahipliği aldıkları ve WordPress dosyalarının ana Apache / www / php işlemine sahip olma güvenlik sorunlarından kaçındığı anlamına gelir.


Mükemmel cevap. Bu endişelerimi ortadan kaldırdı. Bu herhangi bir yerde belgelenmiş mi?
Avery Chan

Evet, muhtemelen farklı miktarlarda ayrıntıya rağmen: codex.wordpress.org/Filesystem_API
Otto

"Kendine geri dön" bağlantısı kurduğunuzda PHP'nin FTP istemcisi olduğunu ve üzerinde çalıştığı sunucuya bağlandığını mı söylüyorsunuz?
dangel

Evet, aynen öyle.
Otto
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.