Abr5

Actualizar WordPress por SSH

Javi Vicente programación
'; }?>

Si administras un servidor dedicado o propio y conoces un poco de seguridad, quizá ni te hayas planteado la posibilidad de instalar un servidor FTP, sino que utilizas SFTP (Filezilla, Transmit y muchos otros clientes lo soportan) para subir tus archivos.

Aunque parezca que WordPress sólo detecta FTP y FTPS, deberás instalar el paquete que habilita SSH2 sobre PHP de forma sencilla (elige el que te permita tu distribución):

apt-get install libssh2-php

pecl install ssh2 channel://pecl.php.net/ssh2-version

yum install gcc php-devel php-pear libssh2 libssh2-devel

Ahora bien, por defecto se añade la línea correspondiente al fichero de configuración de PHP para que automáticamente se cargue cuando reiniciamos Apache, pero es posible que no se haga, debemos comprobar que existe:

Ubuntu/Debian
cd /etc/php5/conf.d;
vi ssh2.ini

Si no existe la linea, añadiremos

echo “extension=ssh2.so” > ssh2.ini

Y reiniciamos Apache

/etc/init.d/apache2 restart

En Red Hat, CentOS, Fedora lo mismo:

cd /etc/php.d;
echo “extension=ssh2.so” > ssh2.ini
/etc/init.d/httpd restart

Ahora sólo nos falta generar una clave privada y pública:

ssh-keygen

Autorizamos a sí mismo:


cd .ssh
cp id_rsa.pub authorized_keys

Y damos permisos de lectura. Aquí una cuestión importante ya que dar permisos de lectura es bastante peligroso (ya no digamos de escritura) si no se tienen las últimas versiones instaladas, puesto que es un agujero de seguridad bastante utilizado por los hackers.


cd ~/
chmod 755 .ssh
chmod 644 .ssh/*

En WordPress ya nos aparecerá la opción SSH2 a la hora de actualizar. Si queremos que esos valores aparezcan por defecto debemos editar el archivo wp-config.php y añadir las siguientes líneas adaptándolas a la configuración correspondiente:

define('FTP_PUBKEY','/home/user1/.ssh/id_rsa.pub');
define('FTP_PRIKEY','/home/user1/.ssh/id_rsa');
define('FTP_USER','user1');
define('FTP_PASS','');
define('FTP_HOST','server1.example.com:22');