Открытый и закрытый ключи неверны для пользователя

Открытый и закрытый ключи неверны для пользователя

Я следилэтот урок(что сработало у меня на нескольких 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 PEMпараметр в ssh-keygen.

В противном случае ключ сработал, когда я использовал SSH из терминала, но не сработал в Wordpress, что привело к тому же сообщению об отключении, что и в вашем журнале. Вместо этого ssh-keygen -m PEM -t rsaсработало без каких-либо проблем.

Кроме того, мне пришлось включить allow_url_fopen = OnPHP, иначе Wordpress не мог найти каталог wp-content.

решение4

Я использую www-data в качестве владельца, добавление следующей строки в wp-config.php решило эту проблему.

define( 'FS_METHOD', 'direct' );

Связанный контент