用戶的公鑰和私鑰不正確

用戶的公鑰和私鑰不正確

我已經關注了本教程(這對我在幾個 VPS 上有用)配置一種安全的方式來安裝和更新 WordPress 中的主題和外掛程式。基本上:

sudo adduser wp-user
cd /var/www
sudo chown -R wp-user:wp-user /var/www/
sudo su - wp-user
ssh-keygen -t rsa -b 4096
exit
sudo chown wp-user:www-data /home/wp-user/wp_rsa*
sudo chmod 0640 /home/wp-user/wp_rsa*
sudo mkdir /home/wp-user/.ssh
sudo chown wp-user:wp-user /home/wp-user/.ssh/
sudo chmod 0700 /home/wp-user/.ssh/
sudo cp /home/wp-user/wp_rsa.pub /home/wp-user/.ssh/authorized_keys
sudo chown wp-user:wp-user /home/wp-user/.ssh/authorized_keys
sudo chmod 0644 /home/wp-user/.ssh/authorized_keys
sudo nano /home/wp-user/.ssh/authorized_keys

來自=“127.0.0.1”ssh-rsa...

sudo apt-get update
sudo apt-get install php5-dev libssh2-1-dev libssh2-php
sudo nano /var/www/wp-config.php

添加:

define('FTP_PUBKEY','/home/wp-user/wp_rsa.pub');
define('FTP_PRIKEY','/home/wp-user/wp_rsa');
define('FTP_USER','wp-user');
define('FTP_PASS','');
define('FTP_HOST','127.0.0.1:22');

最後:

sudo service apache2 restart

出於某種原因,我收到訊息:

wp-user 的公鑰和私鑰不正確

正在尋找答案,我已經看到了這個問題,但沒有一個答案對我有用。

首先,我將文件放入/home/wp-user目錄中,但也嘗試放入/home/wp-user/.ssh.這就是我現在所擁有的:

ls -la /home/wp-user/.ssh

drwx------ 2 wp-user wp-user  4096 Mar  1 15:02 .
drwxr-xr-x 3 wp-user wp-user  4096 Mar  1 14:58 ..
-rw-r--r-- 1 wp-user wp-user   742 Mar  1 15:02 authorized_keys
-rw-r----- 1 wp-user www-data 3247 Mar  1 14:58 wp_rsa
-rw-r----- 1 wp-user www-data  742 Mar  1 14:58 wp_rsa.pub

和:

define('FTP_PUBKEY','/home/wp-user/.ssh/wp_rsa.pub');
define('FTP_PRIKEY','/home/wp-user/.ssh/wp_rsa');
define('FTP_USER','wp-user');
define('FTP_PASS','');
define('FTP_HOST','127.0.0.1:miCustomPortForSSH');

auth.log每次嘗試連接時我都可以看到此輸出:

Mar  1 14:37:51 vpsxxxx sshd[2430]: Set /proc/self/oom_score_adj to -800
Mar  1 14:37:51 vpsxxxx sshd[2430]: Connection from 127.0.0.1 port 56103
Mar  1 14:37:51 vpsxxxx sshd[2430]: Received disconnect from 127.0.0.1: 11: PECL/ssh2 (http://pecl.php.net/packages/ssh2) [preauth]

每次使用不同的連接埠:

Mar  1 14:38:16 vpsxxxx sshd[2435]: Set /proc/self/oom_score_adj to -800
Mar  1 14:38:16 vpsxxxx sshd[2435]: Connection from 127.0.0.1 port 56128
Mar  1 14:38:16 vpsxxxx sshd[2435]: Received disconnect from 127.0.0.1: 11: PECL/ssh2 (http://pecl.php.net/packages/ssh2) [preauth]

我使用 Apache2 和 Nginx 作為代理伺服器,但日誌檔案沒有透露任何內容。任何想法?

答案1

看起來私鑰太開放了,因為它是群組可讀的。嘗試刪除群組讀取權限

chmod g-r wp_rsa

看看情況如何。

答案2

如果您正在使用php_admin_value open_basedir無論如何,鍵必須位於列出的路徑中包含的目錄中。

答案3

在兩台 Debian 10 伺服器上,我必須在-m PEMssh-keygen 中新增參數。

否則,當我從終端使用 SSH 時,金鑰可以工作,但它在 Wordpress 中不起作用,導致出現與日誌中出現的相同的斷開訊息。相反,ssh-keygen -m PEM -t rsa工作沒有任何問題。

另外,我必須allow_url_fopen = On在 PHP 中啟用,否則 Wordpress 無法找到 wp-content 目錄。

答案4

我使用 www-data 作為所有者,將以下行新增至 wp-config.php 為我解決了這個問題。

define( 'FS_METHOD', 'direct' );

相關內容