ユーザーの公開鍵と秘密鍵が正しくありません

ユーザーの公開鍵と秘密鍵が正しくありません

私はフォローしましたこのチュートリアル(これは私の場合、いくつかの 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

from="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 オープンベースディレクトリディレクティブをまったく使用しない場合は、キーがリストされたパスに含まれるディレクトリに存在する必要があります。

答え3

-m PEM2 台の Debian 10 サーバーで、ssh-keygen にパラメータを追加する必要がありました。

それ以外の場合、ターミナルから SSH を使用したときにキーは機能しましたが、Wordpress では機能せず、ログに表示されたものと同じ切断メッセージが表示されました。代わりに、ssh-keygen -m PEM -t rsa問題なく機能しました。

また、PHP を有効にする必要がありましたallow_url_fopen = On。そうしないと、Wordpress は wp-content ディレクトリを見つけることができませんでした。

答え4

私は所有者として www-data を使用しており、wp-config.php に次の行を追加することで解決しました。

define( 'FS_METHOD', 'direct' );

関連情報