Öffentliche und private Schlüssel für Benutzer falsch

Öffentliche und private Schlüssel für Benutzer falsch

Ich bin gefolgtdieses Tutorial(was bei mir auf mehreren VPS funktioniert hat), um eine sichere Möglichkeit zum Installieren und Aktualisieren von Themes und Plugins in Wordpress zu konfigurieren. Im Wesentlichen:

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

von="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

Hinzufügen:

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');

Und schlussendlich:

sudo service apache2 restart

Aus irgendeinem Grund erhalte ich die Meldung:

Öffentliche und private Schlüssel für WP-Benutzer falsch

Auf der Suche nach einer Antwort habe ich gesehendiese Frage, aber keine der Antworten hat bei mir funktioniert.

Zuerst habe ich die Dateien in /home/wp-userdas Verzeichnis gelegt, aber auch versucht, in zu gelangen /home/wp-user/.ssh. Das hier ist, was ich jetzt habe:

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

Und:

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.logBei jedem Verbindungsversuch wird mir diese Ausgabe angezeigt :

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]

mit jeweils anderem Port:

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]

Ich verwende Apache2 und Nginx als Proxyserver, aber die Protokolldateien verraten nichts. Irgendeine Idee?

Antwort1

Es sieht so aus, als ob der private Schlüssel zu offen ist, da er von der Gruppe gelesen werden kann. Versuchen Sie, die Leseberechtigungen der Gruppe zu entfernen.

chmod g-r wp_rsa

und sehen Sie, wie das läuft.

Antwort2

Wenn Sie diephp_admin_value open_basedir-Direktive überhaupt verwenden, müssen sich die Schlüssel in einem Verzeichnis befinden, das in den aufgelisteten Pfaden enthalten ist.

Antwort3

Auf zwei Debian 10-Servern musste ich -m PEMParameter zu ssh-keygen hinzufügen.

Ansonsten funktionierte der Schlüssel, als ich SSH vom Terminal aus verwendete, aber nicht in Wordpress, was zu derselben Trennungsmeldung führte wie die, die in Ihrem Protokoll erschien. Stattdessen ssh-keygen -m PEM -t rsafunktionierte es ohne Probleme.

Außerdem musste ich allow_url_fopen = OnPHP aktivieren, sonst konnte Wordpress das WP-Content-Verzeichnis nicht finden.

Antwort4

Ich verwende www-Daten als Eigentümer. Das Hinzufügen der folgenden Zeile zu wp-config.php hat das Problem für mich gelöst.

define( 'FS_METHOD', 'direct' );

verwandte Informationen