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-user
das 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.log
Bei 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 PEM
Parameter 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 rsa
funktionierte es ohne Probleme.
Außerdem musste ich allow_url_fopen = On
PHP 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' );