Perché WordPress ha bisogno della mia chiave ssh privata per l'aggiornamento?


13

Configurare WordPress per l'aggiornamento all'interno dell'applicazione (cioè WordPress) è l'ideale per me per la sua praticità. Tuttavia, sono turbato dai requisiti. I campi richiesti che compaiono dopo l' installazione di ssh2 per php richiedono non solo la mia chiave pubblica, ma anche la mia chiave privata. Penso che al massimo sarebbe richiesta solo la chiave pubblica.

WordPress fornisce effettivamente la mia chiave privata a un server in modo che il server possa caricare il pacchetto software corretto sul mio server? Conosco bene come funzionano le chiavi private / pubbliche SSH, motivo per cui sono confuso perché WordPress ne ha bisogno. Semmai, penserei che il meccanismo di aggiornamento non avrebbe nemmeno bisogno di questo protocollo; userebbe solo http o ftp per il pacchetto server e quindi scaricare / installare / attivare da lì.

Perché WordPress ha bisogno dei miei tasti ssh? Ci sono problemi di sicurezza qui?

Risposte:


11

In sostanza, WordPress deve riconnettersi al server su cui è attualmente in esecuzione.

Esistono diversi modi in cui WordPress può utilizzare per scrivere file e quindi "sovrascrivere" se stesso durante un aggiornamento. Dal punto di vista della sicurezza, la parte importante di questo processo è che i nuovi file devono avere la stessa proprietà dei vecchi file.

Quindi, WordPress esegue prima un test scrivendo direttamente un file e controllando chi è il proprietario risultante. Se il proprietario corrisponde ai file PHP, sa che può scrivere file con la proprietà corretta (ciò significa che il processo è "impostato" per il proprietario del file).

Se il file risultante è di proprietà di un diverso ID utente (che è probabile se Apache / PHP è in esecuzione come un altro utente, come l'utente "www" o "apache"), WordPress deve utilizzare un metodo diverso per creare file con il proprietario corretto.

Un approccio è semplice FTP. Se effettua una connessione FTP al server su cui si trova, quindi scrive i file su di esso, i file risultanti saranno di proprietà di chiunque acceda come FTP. Quindi, richiede all'utente informazioni FTP.

Ma FTP non è molto sicuro. Quindi, come hai trovato, un altro metodo è tramite SSH2. Utilizzando la libreria SSH per PHP, è possibile effettuare una connessione SSH al server allo stesso modo. E che è per questo che ha bisogno di una chiave privata, perché si sta usando che per fare un attacco posteriore in uscita a se stesso. Effettuando tale connessione, è possibile impostare credenziali e scrivere file come l'utente che dispone di tali credenziali.

Se sei preoccupato che abbia quelle chiavi, quindi genera un nuovo set di chiavi e usale esclusivamente per questo scopo.

Per rispondere alla tua domanda diretta, no, WordPress non "fornisce" i tasti da nessuna parte. Scarica il pacchetto di aggiornamento, decomprime il pacchetto e quindi utilizza quelle chiavi per ripristinare una connessione al proprio server (in pratica il loopback), quindi copia i file su quella connessione. In tal modo, le credenziali indicano che i file ottengono la proprietà corretta ed evitano i problemi di sicurezza di avere i file WordPress di proprietà del processo principale di Apache / www / php.


Bella risposta. Questo ha alleviato le mie preoccupazioni. Questo è documentato ovunque?
Avery Chan,

Sì, sebbene possibilmente con quantità diverse di dettagli: codex.wordpress.org/Filesystem_API
Otto,

quando dici fai una connessione "torna a se stesso". Stai dicendo che PHP è il client FTP e ti sta collegando allo stesso server?
dangel

Sì, esattamente quello.
Otto,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.