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

3

Eu segui tutorial (que funcionou para mim em vários VPS's) 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

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

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, recebo a mensagem:

Public and Private keys incorrect for wp-user

Em busca de uma resposta, eu vi esta pergunta , mas nenhuma das respostas funcionou para mim.

Primeiro, coloco os arquivos no diretório /home/wp-user , mas também experimento em /home/wp-user/.ssh . Isso é o que eu 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');

Eu posso ver esta saída em auth.log cada vez que eu 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 o Apache2 e o Nginx como servidor proxy, mas os arquivos de log não revelam nada. Alguma idéia?

    
por Manolo 01.03.2015 / 15:21

4 respostas

1

Parece que a chave privada é muito aberta, pois é legível em grupo. Tente remover as permissões de leitura do grupo

chmod g-r wp_rsa

e veja como isso acontece.

    
por 01.03.2015 / 15:37
0

O primeiro pôster é meio certo. O SSH rejeitará sua chave privada se for legível por outra coisa que não seja o grupo do proprietário. No entanto, se o usuário wp for o proprietário e somente o proprietário puder ler a chave privada, o servidor não poderá lê-lo e você não poderá usar a interface da web. Portanto, você precisa alterar o proprietário tanto na chave pública quanto na privada. Veja como você corrige isso.

sudo chown www-data:www-data /home/wp-user/wp_rsa*
sudo chmod 600 /home/wp-user/wp_rsa

Em defesa do autor do post que você seguiu, esse post foi escrito para o Ubuntu 12.04 e sei que no meu caso eu tenho uma instalação do 14.04.

Além disso, a instalação das bibliotecas extras e as modificações feitas no arquivo wp-config.php são desnecessárias no Ubuntu 14.04 e no Wordpress v4.2.2 apenas no FYI.

    
por 14.06.2015 / 21:18
0

Se você estiver usando a diretiva php_admin_value open_basedir , as chaves precisam estar em um diretório incluído nos caminhos listados.

    
por 28.08.2015 / 07:30
-1

Eu encontrei a mesma mensagem de erro. O @Manolo não estava usando uma senha na pergunta original, mas eu estava. Consegui fazê-lo funcionar depois de gerar chaves ssh sem uma senha.

De acordo com link "Recomenda-se usar uma chave privada que não seja protegida por frase secreta Tem havido inúmeros relatos de que chaves secretas protegidas por frase não funcionam adequadamente. "

    
por 28.10.2015 / 06:06