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

12

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 s'affichent après installation de ssh2 pour php ne demandent pas seulement ma clé publique, mais ma clé privée. clé aussi. 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 privées / publiques SSH, raison pour laquelle 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; utilisez simplement http ou ftp sur le serveur de paquets, puis téléchargez / installez / activez à partir de là.

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

    
posée Avery Chan 17.09.2013 - 13:24

1 réponse

11

Essentiellement, WordPress doit 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.

WordPress effectue donc un test en écrivant directement un fichier et en vérifiant le propriétaire. Si le propriétaire correspond aux fichiers PHP, il sait qu'il peut écrire des fichiers avec le propriétaire correct (cela signifie que le processus est "défini" par le propriétaire du fichier).

Si le fichier résultant appartient à un identifiant d'utilisateur différent (ce qui est probable si Apache / PHP s'exécute en tant qu'utilisateur différent, comme l'utilisateur "www" ou "apache"), WordPress doit alors 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 c'est pourquoi 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 les informations d'identification et écrire des fichiers en tant qu'utilisateur possédant ces informations d'identification.

Si ces clés vous importent, 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" pas les clés partout. 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. Les identifiants garantissent ainsi l’appropriation correcte des fichiers et évitent les problèmes de sécurité liés à la propriété des fichiers WordPress du processus principal Apache / www / php.

    
réponse donnée Otto 17.09.2013 - 13:57

Lire d'autres questions sur les étiquettes