Claves públicas y privadas incorrectas para el usuario

Claves públicas y privadas incorrectas para el usuario

he seguidoeste tutorial(que funcionó para mí en varios VPS) para configurar una forma segura de instalar y actualizar temas y complementos en Wordpress. Básicamente:

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

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

Agregar:

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

Y finalmente:

sudo service apache2 restart

Por alguna razón, recibo el mensaje:

Claves públicas y privadas incorrectas para wp-user

Buscando una respuesta, he vistoesta pregunta, pero ninguna de las respuestas me ha funcionado.

Primero, puse los archivos en /home/wp-userel directorio, pero también probé en /home/wp-user/.ssh. Esto es lo que tengo ahora mismo:

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

Y:

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

Puedo ver este resultado auth.logcada vez que intento conectarme:

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]

con puerto diferente 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]

Estoy usando Apache2 y Nginx como servidor proxy, pero los archivos de registro no revelan nada. ¿Alguna idea?

Respuesta1

Parece que la clave privada está demasiado abierta ya que es legible por un grupo. Intente eliminar los permisos de lectura del grupo.

chmod g-r wp_rsa

y mira cómo va eso.

Respuesta2

Si estás usando elphp_admin_value open_basedirdirectiva, las claves deben estar en un directorio que esté incluido en las rutas enumeradas.

Respuesta3

En dos servidores Debian 10 tuve que agregar -m PEMun parámetro a ssh-keygen.

De lo contrario, la clave funcionó cuando usé SSH desde la terminal, pero no funcionó en Wordpress, lo que resultó en el mismo mensaje de desconexión que apareció en su registro. En cambio, ssh-keygen -m PEM -t rsafuncionó sin ningún problema.

Además, tuve que habilitarlo allow_url_fopen = Onen PHP; de lo contrario, Wordpress no pudo encontrar el directorio wp-content.

Respuesta4

Estoy usando www-data como propietario y agregar la siguiente línea a wp-config.php lo resolvió.

define( 'FS_METHOD', 'direct' );

información relacionada