Un utente ha chiesto informazioni su SSH SFTP Updater Support di Wordpress

Emetti l’autenticazione SSH

Un utente ha chiesto 👇

Ho impostato un utente wpsshupdate per consentire a SSH di aggiornare utilizzando questo plugin.

Ho una copia delle chiavi SSH RSA-4096 accessibili dal gruppo webserver.

Sono in grado di eseguire ssh su localhost dall’utente wpsshupdate e accedere con successo.

Quando provo a utilizzare il plugin per ottenere un aggiornamento ottengo:

Chiave privata errata per wpsshupdate
Assicurati che la chiave che stai utilizzando sia la chiave RSA e non la chiave DSA

Quando guardo il mio auth.log vedo:

13 agosto 16:13:27 web02 sshd[4529]: rexec riga 18: opzione di ammortamento UsePrivilegeSeparation
13 agosto 16:13:27 web02 sshd[4529]: rexec riga 25: opzione di ammortamento KeyRegenerationInterval
13 agosto 16:13:27 web02 sshd[4529]: rexec riga 26: opzione ServerKeyBits non più apprezzata
13 agosto 16:13:27 web02 sshd[4529]: rexec riga 37: opzione di svalutazione RSAAuthentication
13 agosto 16:13:27 web02 sshd[4529]: rexec riga 44: opzione di ammortamento RhostsRSAAuthentication
13 agosto 16:13:41 web02 sshd[4529]: rielaborazione riga di configurazione 37: opzione di deprezzamento RSAAuthentication
13 agosto 16:13:41 web02 sshd[4529]: rielaborazione riga di configurazione 44: opzione di svalutazione RhostsRSAAuthentication
13 agosto 16:13:41 web02 sshd[4529]: Disconnessione ricevuta dalla porta 127.0.0.1 54974: 11: [preauth]

13 agosto 16:13:41 web02 sshd[4529]: Disconnesso dall’utente wpsshupdate 127.0.0.1 per autenticare la porta 54974 [preauth]

Trovo difficile per il mio ssh accettare le chiavi RSA4096 o Ed25519 solo se questo potrebbe causare il problema?

(@ joey2250)

1 anno, 5 mesi fa

Non ottengo quelle voci di auth.log quando lo faccio ssh localhost dall’utente wpsshupdate. Funziona solo per usare correttamente i tasti ssh.

Questa risposta è stata modificata 1 anno, 5 mesi fa.

(@ joey2250)

1 anno, 5 mesi fa

Consento anche solo quanto segue:

Curva KexAlgorithms252519-sha256 @ libssh.org, diffie-hellman-group-exchange-sha256
Ciphers chacha20-poly1305 @ openssh.com, aes256-gcm @ openssh.com, aes128-gcm @ openssh.com, aes256-ctr, aes192-ctr, aes128-ctr
MAC hmac-sha2-512-etm @ openssh.com, hmac-sha2-256-etm @ openssh.com, umac-128-etm @ openssh.com, hmac-sha2-512, hmac-sha2-256, umac-128 @ openssh.com

Ma poiché è autonomo, penseresti che funzioni poiché può essere rilasciato dall’utente stesso.

Questa risposta è stata modificata 1 anno, 5 mesi fa. Autore del plugin

(@davidanderson)

1 anno, 5 mesi fa

Il plugin non ha la possibilità di leggere i file chiave; può utilizzare solo un nome utente / password. Sta usando la libreria phpseclib (https://github.com/phpseclib/phpseclib/); non è in esecuzione / usr / bin / ssh, quindi non raccoglie i file chiave OpenSSH installati.

(@ joey2250)

1 anno, 5 mesi fa

Ho pensato di sì, il messaggio di errore viene estratto dalla parte del codice intorno alla riga 91 da https://github.com/wp-plugins/ssh-sftp-updater-support/blob/master/class-wp-filesystem-ssh2.php.

$rsa->loadKey($this->options['private_key']);

È ciò che mi ha portato a credere che questo plugin supportasse le chiavi SSH.

Autore del plugin

(@davidanderson)

1 anno, 5 mesi fa

Scusa, hai ragione, non usare (non uso molto questo plugin e non sono l’autore originale – ho accettato di tenerlo aggiornato). Forse stai mettendo la chiave nel formato sbagliato? Un RSA è una chiave * tipo *, ma è ortogonale al formato di file della chiave in cui stai inserendo la chiave.

David

(@ joey2250)

1 anno, 5 mesi fa

Nessun problema. Uso la chiave standard rsa_4096 generata da ssh-keygen. È lo stesso che ho usato per testare internamente con ssh, ma come un file diverso con più autorizzazioni aperte in modo che il sito Web abbia le autorizzazioni per accedervi.

Ho usato wp-config.php per definirlo, ho persino copiato la chiave privata e l’ho incollata nel campo di testo di wordpress per testarlo e non ha funzionato.

define (‘FS_METHOD’, ‘ssh2’);
define (‘FTP_BASE’, ‘/ var / www / wp-directory’);
define (‘FTP_PUBKEY’, ‘/ home / wpsshupdate / .ssh / wp_rsa.pub’);
define (‘FTP_PRIKEY’, ‘/ home / wpsshupdate / .ssh / wp_rsa’);
define (‘FTP_USER’, ‘wpsshupdate’);
define (‘FTP_PASS’, ‘****************** hidden *******’);
define (‘FTP_HOST’, ‘localhost’);

(@ joey2250)

1 anno, 5 mesi fa

Scommetto che qualunque cosa stia usando per ssh, allora non è compatibile con gli algoritmi più sicuri per i quali ho un server SSH limitato. O quello o non vuole leggere una chiave a 4096 bit.

Autore del plugin

(@terrafrost)

1 anno, 5 mesi fa

Autore originale qui. Non è una questione di chiavi RSA a 4096 bit. Se dovessi indovinare, immagino che la chiave che stai usando inizi in questo modo:

-----BEGIN OPENSSH PRIVATE KEY-----

Tuttavia, le chiavi di quel formato non erano supportate fino alla v0.8.2 di questo plugin (ultima versione). Stai usando quella versione?

Inoltre, la libreria di base non supporta le chiavi di crittografia in quel formato per motivi tecnici. https://github.com/phpseclib/phpseclib/blob/7012e724881ac479866d05e78dbe6fd25fe5a90b/phpseclib/Crypt/Common/Formats/Keys/OpenSSH.php#L94 è dettagliato.

Autore del plugin

(@davidanderson)

1 anno, 5 mesi fa

Dovresti anche controllare se l’utente sta eseguendo PHP poiché ha i permessi di lettura sui file mostrati.

(@ joey2250)

1 anno, 5 mesi fa

Sto usando la versione 0.8.2.

La chiave privata inizia con:
—– CHIAVE PRIVATA RSA—

L’utente php e il sito Web utilizzano l’utente personalizzato, che dispone dell’accesso di gruppo per leggere il file /home/wpsshupdate/.ssh/wp_rsa. Questo è un duplicato del file id_rsa, ma con autorizzazioni più aperte. La ragione di ciò è che il server ssh non accetterà id_rsa per il test con i permessi di lettura di gruppo per l’utente distribuito. Penso di poter aggirare questo problema avendo l’utente distribuito come utente ssh, ma l’ho impostato deliberatamente in modo che l’utente distribuito non possa connettersi tramite ssh.

Questa risposta è stata modificata 1 anno, 5 mesi fa.

(@ joey2250)

1 anno, 5 mesi fa

E per quanto ne so, le chiavi non sono crittografate e certamente non passcode.

Inoltre, questo è su Ubuntu 18.04, phpfpm-73, nginx 1.17.2, OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 dicembre 2017, wordpress-4.9.10

Questa risposta è stata modificata 1 anno, 5 mesi fa. Questa risposta è stata modificata 1 anno, 5 mesi fa. Questa risposta è stata modificata 1 anno, 5 mesi fa. Autore del plugin

(@terrafrost)

1 anno, 5 mesi fa

E per quanto ne so, le chiavi non sono crittografate e certamente non passcode.

Non è un problema di crittografia poiché le chiavi iniziano con esso -----BEGIN RSA PRIVATE KEY-----. È solo una questione di chiavi che iniziano con -----BEGIN OPENSSH PRIVATE KEY-----.

Ad ogni modo, sarei disposto a scommettere $ 10 che la libreria non è di base perché la chiave è in un formato non supportato. Forse il problema, come suggerito da David Anderson, sono le tue autorizzazioni. Sostieni che quelli sono buoni, ma questo spiegherebbe sicuramente quello che stai vedendo, niente di meno.

Ti suggerirei di fornirmi la chiave e posso verificare che la chiave sia in grado di caricare ma fondamentalmente mi dà anche le credenziali per il tuo server. Puoi creare una chiave che ritieni riproduca il problema che saresti disposto a condividere?

Se si tratta di un problema legittimo con la libreria di base, ti pagherò $ 10, tramite PayPal, per aver trovato quella domanda.

Voglio dire, penso che sia possibile che la chiave sia malformata. Puoi codificare solo in modo casuale il cavo base64 e aspettarti che venga caricato come chiave RSA. Non pagherei $ 10.00 per questo. Ma non posso prendere quella decisione senza vedere una chiave che riproduca la domanda.

Questa risposta è stata modificata 1 anno, 5 mesi fa.

(@ joey2250)

1 anno, 5 mesi fa

Non ho problemi a fornire le chiavi. id piuttosto che renderlo pubblico in questi commenti, ma posso inviarvelo.

Sarei felice di concederti l’accesso al mio server se non puoi uscire da questa domanda.

Autore del plugin

(@terrafrost)

1 anno, 5 mesi fa

Per me va bene! Il mio indirizzo email è terrafrost@php.net. Dò un’occhiata questo pomeriggio e ti fornirò aggiornamenti sullo stato!

Was this helpful?

0 / 0

Lascia un commento 0

Your email address will not be published. Required fields are marked *