Wordpress SFTP 自动更新问题

Wordpress SFTP 自动更新问题

我遇到了 WordPress 和 ssh 的问题。本质上,我正在尝试通过 SFTP 使用 Wordpress 启用自动更新。我已按照DigitalOcean.com 上的这个主题我有一个名为的用户wpftp

以 sudoer 身份通过 SSH 进入服务器,然后我以该用户身份登录服务器login wpftp并输入密码。然后我运行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');

我也尝试过其他配置,但同样不起作用

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毫无问题地进入……

这个问题非常令人沮丧,因为错误没有描述性。我检查了几个线程并尝试应用修复程序,但无济于事。我已经使用 apt-get install 安装了 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

答案1

为什么使用 SFTP?

给予WordPress写入权限就可以解决。

你说你正在使用 Nginx,那么设置

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

代替/var/www/html和你的网站目录路径,以便 WordPress 能够自动更新。

相关内容