По сути, WordPress необходимо подключиться к серверу, на котором он фактически запущен.
Есть несколько возможных способов, которыми WordPress может использовать для записи файлов и, таким образом, «перезаписывать» себя во время обновления. С точки зрения безопасности, важной частью этого процесса является то, что новые файлы должны иметь то же владение, что и старые файлы.
Итак, WordPress сначала выполняет тестирование, напрямую записывая файл и проверяя, кто является его владельцем. Если владелец сопоставляет файлы PHP, то он знает, что может записывать файлы с правильным владельцем (это означает, что процесс «setuid» для владельца файла).
Если полученный файл принадлежит другому идентификатору пользователя (что вероятно, если Apache / PHP работает от имени другого пользователя, такого как пользователь «www» или «apache»), тогда WordPress должен использовать другой метод для создания файлов с правильный владелец.
Одним из подходов является простой FTP. Если он устанавливает FTP-соединение с сервером, на котором он находится, то записывает файлы поверх него, полученные файлы будут принадлежать тому, кто войдет в систему как через FTP. Таким образом, он запрашивает у пользователя информацию FTP.
Но FTP не очень безопасен. Итак, как вы обнаружили, другой метод через SSH2. Используя библиотеку SSH для PHP, он может таким же образом установить SSH-соединение с сервером. И именно поэтому ему нужен закрытый ключ, потому что он использует его для установления исходящего соединения с самим собой. Установив это соединение, он может устанавливать учетные данные и записывать файлы как пользователь, имеющий эти учетные данные.
Если вас беспокоит наличие этих ключей, сгенерируйте новый набор ключей и используйте их исключительно для этой цели.
Чтобы ответить на ваш прямой вопрос, нет, WordPress нигде не «дает» ключи. Он загружает пакет обновления, распаковывает его, а затем использует эти ключи для установления соединения с собственным сервером (в основном, с обратной связью), а затем копирует файлы по этому соединению. При этом учетные данные означают, что файлы получают правильное владение и избегают проблем безопасности, связанных с владением файлами WordPress основным процессом Apache / www / php.