WordPress的SFTP自动更新问题

我遇到了WordPress和ssh的问题。 基本上,我试图通过SFTP启用Wordpress自动更新。 我已经按照DigitalOcean.com上的wpftp的指示向上,我有一个名为wpftp的用户。

SSHd到服务器作为sudoer,然后我login到服务器作为该用户使用login wpftp并input密码。 然后我运行ssh-keygen -t rsa -b 4096exit

作为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'); 

我也有一个替代的configuration,我试过了,也没有工作

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

我在wordpresspipe理面板上得到以下错误:

 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-fpmnginx错误日志,没有任何东西popup

不正确的文件格式。 如果您的公钥或私钥存在格式问题,则WordPress将拒绝该密钥并拒绝使用该密钥。 〜/ .ssh / authorized_keys文件也是如此。 我检查了id_dsa.pub,这很好,我能够ssh wpftp@localhost并没有问题…

由于错误是非描述性的,所以这个问题相当令人沮丧。 我检查了几个线程,并尝试应用修复程序,但无济于事。 我已经安装了apt-get安装ssh2库…任何想法?

其他参考我检查:

WordPress的SSH升级问题

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

为什么使用SFTP?

给WordPress写权限,然后解决。

你说你使用Nginx然后设置

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

用你的站点目录pathreplace/ var / www / html ,这样WordPress就能够自动更新。