Проблемы с автоматическим обновлением Wordpress SFTP

Проблемы с автоматическим обновлением Wordpress SFTP

У меня возникла проблема с WordPress и ssh. По сути, я пытаюсь включить автоматическое обновление с Wordpress через SFTP. Я следовал инструкциям наЭта реклама на DigitalOcean.comУ меня есть пользователь с именем wpftp.

SSHd на сервер как sudoer, затем я вхожу на сервер как этот пользователь, используя login wpftpи ввожу пароль. Затем я запускаю ssh-keygen -t rsa -b 4096и exit.

Вернувшись как пользователь sudo, я запустил chown -R wpftp:www-data .ssh/ командуchmod 0640 .ssh/*chmod 0700 .ssh

ls -lahдает мне следующее для .sshпапки

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

Пока все выглядит хорошо…

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

дает мне следующее

-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

Добавлено from="127.0.0.1"в authorized_keysначало

Вставил следующее в wp-config.php

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('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);

Я получаю следующую ошибку на панели администратора WordPress:

Public and Private keys incorrect for wpftp

Я смотрю /var/log/auth.logи там написано

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]

Затем я рассмотрел общие проблемы настатья, упомянутая выше

1. Неправильные разрешения на доступ к открытому ключу, закрытому ключу и каталогам, которые их содержат.

/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

Я также проверил пользователя nginx

# 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)

Я также проверил php5-fpmжурналы nginxошибок, там ничего не всплывает.

Неправильное форматирование файла. Если у вашего открытого или закрытого ключа есть проблемы с форматированием, WordPress отклонит ключ и откажется его использовать. То же самое касается файла ~/.ssh/authorized_keys. Я проверил id_dsa.pub, и он оказался в порядке, я смог ssh wpftp@localhostвойти без проблем…

Эта проблема была довольно раздражающей, так как ошибки не являются описательными. Я проверил несколько тем и попытался применить исправления, но безрезультатно. Я установил библиотеку ssh2 с помощью apt-get install … Есть какие-нибудь мысли?

Другие проверенные мной ссылки:

Проблема обновления Wordpress SSH

http://wordpress.org/support/topic/неверный-ключ-для-пользовательской-ошибки

http://wordpress.org/support/topic/неправильный-ключ-для-wordpress

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

решение1

Зачем использовать SFTP?

Дайте WordPress разрешение на запись, и проблема будет решена.

вы сказали, что используете Nginx, затем установите

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

заменять/var/www/htmlс вашейсайт дирпуть, чтобы WordPress мог обновляться автоматически.

Связанный контент