WordPress SFTP 自動更新問題

WordPress SFTP 自動更新問題

我遇到了 WordPress 和 ssh 的問題。本質上,我正在嘗試透過 SFTP 啟用 Wordpress 自動更新。我已按照以下說明進行操作DigitalOcean.com 上的這個主題up 我有一個名為 的使用者wpftp

作為 sudoer 透過 SSH 連接到伺服器,然後我以該使用者身分登入伺服器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毫無問題地進入...

這個問題非常令人沮喪,因為錯誤是非描述性的。我已經檢查了幾個線程並嘗試應用修復程序,但無濟於事。我已經使用 apt-get install 安裝了 ssh2 庫...有什麼想法嗎?

我查過的其他參考資料:

WordPress SSH 升級問題

http://wordpress.org/support/topic/private-key-in Correct-for-user-error

http://wordpress.org/support/topic/private-key-in Correct-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 能夠自動更新。

相關內容