Я следил этот учебник (который работал у меня на нескольких 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
Ищу ответ, я видел этот вопрос, но ни один из ответов не помог мне.
Сначала я помещаю файлы в /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 в качестве прокси-сервера, но файлы журналов ничего не показывают. Любая идея?
На двух серверах Debian 10 мне пришлось добавить -m PEM
параметр для ssh-keygen.
В противном случае ключ работал, когда я использовал SSH из терминала, но он не работал в Wordpress, что приводило к тому же сообщению об отключении, которое появилось в вашем журнале. Вместо, ssh-keygen -m PEM -t rsa
работал без проблем.
Также мне пришлось включить allow_url_fopen = On
в PHP, иначе Wordpress не смог бы найти каталог wp-content.
Если вы используете php_admin_value open_basedir директиве вообще, ключи должны находиться в каталоге, который включен в перечисленные пути.
Похоже, что закрытый ключ слишком открыт, так как он доступен для чтения группам. Попробуйте удалить разрешения на чтение для группы
chmod g-r wp_rsa
и посмотрим, как это пойдет.
Первый плакат наполовину прав. SSH отклонит ваш закрытый ключ, если он доступен для чтения кем-либо, кроме группы владельцев. Однако если владелец wp-user и только владелец может прочитать закрытый ключ, то сервер не может его прочитать, и вы не можете использовать веб-интерфейс. Поэтому вы должны изменить владельца как открытого, так и закрытого ключа. Вот как это исправить.
sudo chown www-data:www-data /home/wp-user/wp_rsa*
sudo chmod 600 /home/wp-user/wp_rsa
В защиту автора поста, за которым вы следовали, этот пост был написан для Ubuntu 12.04, и я знаю, что в моем случае у меня установлена версия 14.04.
Кроме того, установка дополнительных библиотек и модификации файла wp-config.php не нужны в Ubuntu 14.04 и Wordpress v4.2.2, к вашему сведению.
Я столкнулся с тем же сообщением об ошибке. @Manolo не использовал кодовую фразу в исходном вопросе, но я был. Я смог заставить его работать после того, как сгенерировал ключи ssh без парольной фразы.
В соответствии с https://codex.wordpress.org/Editing_wp-config.php#Enhibited_SSH_Upgrade_Access «Рекомендуется использовать закрытый ключ, который не защищен парольной фразой. Было много сообщений о том, что закрытые ключи, защищенные парольной фразой, не работают должным образом».