Chaves públicas e privadas incorretas para o usuário

Chaves públicas e privadas incorretas para o usuário

eu seguieste tutorial(que funcionou para mim em vários VPS) para configurar uma forma segura de instalar e atualizar temas e plugins no Wordpress. Basicamente:

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

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

Adicionar:

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

E finalmente:

sudo service apache2 restart

Por algum motivo, estou recebendo a mensagem:

Chaves públicas e privadas incorretas para wp-user

Procurando por uma resposta, eu viessa questão, mas nenhuma das respostas funcionou para mim.

Primeiro, coloquei os arquivos no /home/wp-userdiretório, mas também tentei em /home/wp-user/.ssh. Isso é o que tenho agora:

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

E:

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

Posso ver esta saída auth.logcada vez que tento conectar:

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]

com porta diferente de cada vez:

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]

Estou usando Apache2 e Nginx como servidor proxy, mas os arquivos de log não revelam nada. Qualquer ideia?

Responder1

Parece que a chave privada está muito aberta, pois pode ser lida em grupo. Tente remover as permissões de leitura do grupo

chmod g-r wp_rsa

e veja como isso acontece.

Responder2

Se você estiver usando ophp_admin_value open_basedirdiretiva, as chaves precisam estar em um diretório incluído nos caminhos listados.

Responder3

Em dois servidores Debian 10 tive que adicionar -m PEMparâmetro ao ssh-keygen.

Caso contrário, a chave funcionou quando usei o SSH do terminal, mas não funcionou no Wordpress, resultando na mesma mensagem de desconexão que apareceu no seu log. Em vez disso, ssh-keygen -m PEM -t rsafuncionou sem nenhum problema.

Além disso, tive que habilitar allow_url_fopen = Onno PHP, caso contrário o Wordpress não conseguiria encontrar o diretório wp-content.

Responder4

Estou usando www-data como proprietário, adicionar a seguinte linha ao wp-config.php resolveu isso para mim.

define( 'FS_METHOD', 'direct' );

informação relacionada