Pada dasarnya, WordPress perlu terhubung kembali ke server di mana ia sebenarnya berjalan.
Ada beberapa kemungkinan cara WordPress dapat digunakan untuk menulis file dan dengan demikian "menimpa" dirinya sendiri selama peningkatan. Dari perspektif keamanan, bagian penting dari proses ini adalah bahwa file baru harus memiliki kepemilikan yang sama dengan file lama.
Jadi, WordPress melakukan tes pertama dengan menulis file secara langsung dan memeriksa siapa pemilik yang dihasilkan. Jika pemilik cocok dengan file PHP, maka ia tahu ia dapat menulis file dengan kepemilikan yang benar (ini berarti bahwa prosesnya adalah "setuid" untuk pemilik file).
Jika file yang dihasilkan dimiliki oleh id pengguna yang berbeda (yang kemungkinan jika Apache / PHP berjalan sebagai pengguna yang berbeda, seperti pengguna "www" atau "apache"), maka WordPress harus menggunakan metode berbeda untuk membuat file dengan pemilik yang benar.
Salah satu pendekatannya adalah FTP sederhana. Jika ia membuat koneksi FTP kembali ke server yang dihidupkan, kemudian menulis file di atasnya, file yang dihasilkan akan dimiliki oleh siapa pun yang login sebagai melalui FTP. Jadi, itu meminta pengguna untuk informasi FTP.
Tetapi FTP tidak terlalu aman. Jadi seperti yang Anda temukan, metode lain adalah melalui SSH2. Menggunakan pustaka SSH untuk PHP, itu dapat membuat koneksi SSH kembali ke server dengan cara yang sama. Dan itu sebabnya diperlukan kunci privat, karena menggunakannya untuk membuat koneksi keluar kembali ke dirinya sendiri. Dengan membuat koneksi itu, ia dapat mengatur kredensial, dan menulis file sebagai pengguna yang memiliki kredensial itu.
Jika Anda khawatir memiliki kunci-kunci itu, maka buat satu set kunci baru dan gunakan itu untuk tujuan ini secara eksklusif.
Untuk menjawab pertanyaan langsung Anda, tidak, WordPress tidak "memberikan" kunci di mana saja. Ia mengunduh paket pemutakhiran, membongkar paketnya, dan kemudian menggunakan kunci-kunci itu untuk membuat koneksi kembali ke servernya sendiri (loopback, pada dasarnya), dan kemudian menyalin file melalui koneksi itu. Dengan demikian, kredensial berarti file mendapatkan kepemilikan yang benar dan menghindari masalah keamanan memiliki file WordPress yang dimiliki oleh proses utama Apache / www / php.