
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 wpftp
und das Passwort eingegeben. Dann habe ich ssh-keygen -t rsa -b 4096
und 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 -lah
gibt mir folgendes für .ssh
Ordner
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_keys
am 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.log
und 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
, nginx
da 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@localhost
problemlos 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:
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.