web-dev-qa-db-fra.com

Pourquoi WordPress a-t-il besoin de ma clé ssh privée pour se mettre à jour?

Configurer WordPress pour qu'il se mette à jour dans l'application (WordPress) est idéal pour moi en raison de sa commodité. Néanmoins, je suis troublé par les exigences. Les champs demandés qui apparaissent après l’installation de ssh2 pour php ask ne demandent pas seulement ma clé publique, mais aussi ma clé privée. Je pense que, tout au plus, seule la clé publique serait requise.

WordPress donne-t-il réellement ma clé privée à un serveur afin que celui-ci puisse télécharger le progiciel approprié sur mon serveur? Je connais bien le fonctionnement des clés SSH privées/publiques. C'est pourquoi je ne comprends pas pourquoi WordPress en a besoin. Au contraire, je penserais que le mécanisme de mise à jour n'aurait même pas besoin de ce protocole; il suffit d'utiliser http ou ftp sur le serveur de paquets, puis de télécharger/installer/activer à partir de là.

Pourquoi WordPress a-t-il besoin de mes clés ssh? Y at-il des problèmes de sécurité ici?

12
Avery Chan

WordPress doit essentiellement se reconnecter au serveur sur lequel il est exécuté.

WordPress peut utiliser plusieurs manières possibles pour écrire des fichiers et ainsi "se réécrire" lors d'une mise à niveau. Du point de vue de la sécurité, l’essentiel de ce processus est que les nouveaux fichiers doivent avoir la même propriété que les anciens fichiers.

Ainsi, WordPress effectue d'abord un test en écrivant un fichier directement et en vérifiant qui est le propriétaire résultant. Si le propriétaire correspond aux fichiers PHP, il sait qu'il peut écrire des fichiers avec la propriété correcte (le processus est donc "défini" par le propriétaire du fichier).

Si le fichier résultant appartient à un autre ID utilisateur (ce qui est probable si Apache/PHP s'exécute en tant qu'utilisateur différent, tel que l'utilisateur "www" ou "Apache"), WordPress doit utiliser une méthode différente pour créer des fichiers avec le bon propriétaire.

Une approche est simple FTP. S'il établit une connexion FTP avec le serveur sur lequel il se trouve, écrit ensuite les fichiers par-dessus, les fichiers résultants seront la propriété de quiconque se connectera via FTP. Ainsi, il invite l'utilisateur à fournir des informations FTP.

Mais FTP n'est pas très sécurisé. Comme vous l'avez constaté, une autre méthode consiste à utiliser SSH2. En utilisant la bibliothèque SSH pour PHP, il peut établir une connexion SSH avec le serveur de la même manière. Et that est la raison pour laquelle il a besoin d’une clé privée, car il l’utilise pour établir une connexion sortante avec lui-même. En établissant cette connexion, il peut définir des informations d'identification et écrire des fichiers en tant qu'utilisateur possédant ces informations d'identification.

Si ces clés vous préoccupent, générez un nouvel ensemble de clés et utilisez-les exclusivement à cette fin.

Pour répondre à votre question directe, non, WordPress ne "donne" les clés nulle part. Il télécharge le package de mise à niveau, le décompresse, puis utilise ces clés pour établir une connexion avec son propre serveur (bouclage, en gros), puis copie les fichiers sur cette connexion. Ainsi, les informations d'identification signifient que les fichiers obtiennent la propriété correcte et évitent les problèmes de sécurité liés au fait que les fichiers WordPress appartiennent au processus principal Apache/www/php.

11
Otto