我遇到了WordPress和ssh的问题。 基本上,我试图通过SFTP启用Wordpress自动更新。 我已经按照DigitalOcean.com上的wpftp
的指示向上,我有一个名为wpftp
的用户。
SSHd到服务器作为sudoer,然后我login到服务器作为该用户使用login wpftp
并input密码。 然后我运行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');
我也有一个替代的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-fpm
和nginx
错误日志,没有任何东西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就能够自动更新。