[Gentoo mini Howto] Wordpress, mises à jour sécurisées via la libssh2.

Comme beaucoup d'administrateurs systèmes, je n'aime pas beaucoup ouvrir des ports, ou des services qui puissent compromettre la sécurité du serveur.

En effet, cela me gênait beaucoup d'installer un serveur FTP uniquement pour mettre à jour mon Wordpress. Comme j'administre mes machines principalement par SSH, en lignes de commande avec une authentification par mot de passe ( et/ou clés asymétriques ). Je me suis dit qu'il devait être intéressant d'implémenter la mise à jour en FTP de Wordpress, vers du SFTP via la libraire PECL-SSH2 pour PHP7.3, dans mon cas.

Après installation, Wordpress reconnait automatiquement le protocole SSH2 pour ses mises à jour. Je vais tenter de décrire ici, la procédure pour le mettre en oeuvre :

Pré-requis :

Installation :

Nous allons d'abord nous assurer d'avoir le support php-fpm, en recompilant PHP avec ces options (ARM64 RaspberryPi 3b dans mon cas) :

The following keyword changes are necessary to proceed:
 (see "package.accept_keywords" in the portage(5) man page for more details)
# required by dev-lang/php-7.3.2::gentoo
# required by dev-lang/php (argument)
=app-eselect/eselect-php-0.9.5 ~arm64

The following USE changes are necessary to proceed:
 (see "package.use" in the portage(5) man page for more details)
# required by dev-lang/php-7.3.2::gentoo
# required by dev-lang/php (argument)
>=app-eselect/eselect-php-0.9.5 fpm
pingwho ~ # emerge -av dev-lang/php app-eselect/eselect-php

 * IMPORTANT: 18 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R   ~] app-eselect/eselect-php-0.9.5::gentoo  USE="apache2 fpm" 0 KiB
[ebuild   R   ~] dev-lang/php-7.3.2:7.3::gentoo  USE="acl apache2 berkdb bzip2 cgi cli ctype embed fileinfo filter fpm gd gdbm hash iconv json mysql mysqli nls opcache pdo phar posix readline session simplexml spell ssl tokenizer truetype unicode xml xmlreader xmlrpc xpm zlib -argon2 -bcmath -calendar -cdb -cjk -coverage -curl -debug -enchant -exif (-firebird) -flatfile -ftp -gmp -imap -inifile -intl -iodbc -ipv6 -kerberos -ldap (-ldap-sasl) -libedit -libressl -lmdb -mhash (-mssql) (-oci8-instant-client) -odbc -pcntl -phpdbg -postgres (-qdbm) -recode (-selinux) -session-mm -sharedmem -snmp -soap -sockets -sodium -sqlite -systemd -sysvipc -test -threads -tidy (-tokyocabinet) -wddx -webp -xmlwriter -xslt -zip -zip-encryption" 0 KiB
pingwho ~ # emerge -av pecl-ssh2

 * IMPORTANT: 18 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R   ~] dev-php/pecl-ssh2-1.1.2-r9:7::pingwho-overlay  PHP_TARGETS="php5-6 php7-2 (-php7-0) -php7-1" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB

Would you like to merge these packages? [Yes/No] 

Finalisation :

A présent, recharger apache pour prendre en charge vos changements :

pingwho ~ # /etc/init.d/apache2 reload
 * Gracefully restarting apache2 ...                                      [ ok ]

Maintenant que le support SSH2, en plus de FTP, devrait être disponible depuis l'interface d'administration de votre Wordpress. Il suffit d'y renseigner les champs nécessaires à une authentification SSH soit depuis un mot de passe et/ou une paire de clés asymétriques.

NB : L'utilisation de clés asymétriques est plus appropriée en termes de sécurité. Cette solution est vivement recommandée !

Mis à jour le 25/02/2019.