Probleme mit der automatischen SFTP-Aktualisierung von Wordpress

Probleme mit der automatischen SFTP-Aktualisierung von Wordpress

Ich habe ein Problem mit WordPress und SSH. Im Wesentlichen versuche ich, die automatische Aktualisierung mit WordPress über SFTP zu aktivieren. Ich habe die Anweisungen auf befolgtDieser Thread auf DigitalOcean.comIch habe einen Benutzer namens wpftp.

Ich habe mich per SSH als sudoer beim Server angemeldet, mich dann als dieser Benutzer mit beim Server angemeldet login wpftpund das Passwort eingegeben. Dann habe ich ssh-keygen -t rsa -b 4096und ausgeführt exit.

Zurück als Sudo-Benutzer habe ich dann chown -R wpftp:www-data .ssh/ ausgeführtchmod 0640 .ssh/*chmod 0700 .ssh

ls -lahgibt mir folgendes für .sshOrdner

drwx------ 2 wpftp www-data 4.0K Jan 14 09:00 .ssh

sieht bisher gut aus …

cd .ssh/
cp id_rsa.pub authorized_keys
chown wpftp:www-data *

gibt mir folgendes

-rw-r----- 1 wpftp www-data  747 Jan 14 09:04 authorized_keys
-rw-r----- 1 wpftp www-data 3.2K Jan 14 09:00 id_rsa
-rw-r----- 1 wpftp www-data  747 Jan 14 09:00 id_rsa.pub

Hinzugefügt from="127.0.0.1"zu dem authorized_keysam Anfang

Folgendes in wp-config.php eingefügt

define('FTP_PUBKEY','/home/wpftp/.ssh/id_rsa.pub');
define('FTP_PRIKEY','/home/wpftp/.ssh/id_rsa');
define('FTP_USER','wpftp');
define('FTP_PASS','');
define('FTP_HOST','127.0.0.1:22');

Ich habe auch eine alternative Konfiguration ausprobiert, die auch nicht funktioniert hat

define('FS_METHOD', 'ssh2');
define('FTP_BASE', '/usr/share/nginx/wordpress');
define('FTP_CONTENT_DIR', '/usr/share/nginx/wordpress/wp-content/');
define('FTP_PLUGIN_DIR ', '/usr/share/nginx/wordpress/wp-content/plugins/');
define('FTP_PUBKEY', '/home/wpftp/.ssh/id_rsa.pub');
define('FTP_PRIKEY', '/home/wpftp/.ssh/id_rsa');
define('FTP_USER', 'wpftp');
define('FTP_PASS', '');
define('FTP_HOST', '127.0.0.1:22');
define('FTP_SSL', true);

Ich erhalte im WordPress-Administrationsbereich die folgende Fehlermeldung:

Public and Private keys incorrect for wpftp

Ich schaue hin /var/log/auth.logund da steht

Jan 14 09:09:17 localhost sshd[18313]: Received disconnect from 127.0.0.1: 11: PECL/ssh2 (http://pecl.php.net/packages/ssh2) [preauth]
Jan 14 09:09:20 localhost sshd[18315]: Received disconnect from 127.0.0.1: 11: PECL/ssh2 (http://pecl.php.net/packages/ssh2) [preauth]
Jan 14 09:09:48 localhost sshd[18318]: Received disconnect from 127.0.0.1: 11: PECL/ssh2 (http://pecl.php.net/packages/ssh2) [preauth]

Ich ging dann die häufigsten Probleme durch, die auf deroben erwähnter Artikel

1. Unzureichende Berechtigungen für den öffentlichen Schlüssel, den privaten Schlüssel und die Verzeichnisse, die sie enthalten.

/home/wpftp/.ssh/# ls -lah | grep .ssh
drwx------ 2 wpftp www-data 4.0K Jan 14 09:04 .ssh

/home/wpftp/.ssh/# cd .ssh
/home/wpftp/.ssh/# ls -lah
-rw-r----- 1 wpftp www-data  764 Jan 14 09:06 authorized_keys
-rw-r----- 1 wpftp www-data 3.2K Jan 14 09:00 id_rsa
-rw-r----- 1 wpftp www-data  747 Jan 14 09:00 id_rsa.pub

Ich habe auch den Nginx-Benutzer überprüft

# ps aux | grep nginx
root     nginx: master process /usr/sbin/nginx
www-data  nginx: worker process
www-data nginx: worker process

#ps aux | grep php
root     18274  0.0  0.1 253360  5476 ?        Ss   09:07   0:00 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)      
www-data php-fpm: pool www                                         
www-data php-fpm: pool www                                         
www-data php-fpm: pool www  
(several more pools follow)

Ich habe auch die Fehlerprotokolle überprüft php5-fpm, nginxda taucht nichts auf

Falsche Dateiformatierung. Wenn Ihr öffentlicher oder privater Schlüssel Formatierungsprobleme aufweist, wird WordPress den Schlüssel ablehnen und seine Verwendung verweigern. Dasselbe gilt für die Datei ~/.ssh/authorized_keys. Ich habe die Datei id_dsa.pub geprüft und sie war in Ordnung. Ich kann ssh wpftp@localhostproblemlos hineinkommen …

Dieses Problem war ziemlich frustrierend, da die Fehler nicht aussagekräftig sind. Ich habe mehrere Threads überprüft und versucht, die Korrekturen anzuwenden, aber ohne Erfolg. Ich habe die SSH2-Bibliothek mit apt-get install installiert … Irgendwelche Ideen?

Andere Referenzen, die ich überprüft habe:

Wordpress SSH Upgrade Problem

http://wordpress.org/support/topic/private-key-incorrect-for-user-error

http://wordpress.org/support/topic/private-key-incorrect-for-wordpress

http://chocotech.blogspot.com/2013/02/update-wordpress-by-using-ssh2-sftp.html

Antwort1

Warum SFTP verwenden?

Geben Sie WordPress die Schreibberechtigung, dann ist das Problem gelöst.

u sagte, Sie verwenden Nginx dann setzen

chown -r nginx:nginx /var/www/html

ersetzen/var/www/htmlmit IhremSite-VerzeichnisPfad, damit WordPress automatisch aktualisiert werden kann.

verwandte Informationen