Zasadniczo WordPress musi ponownie połączyć się z serwerem, na którym faktycznie działa.
Istnieje kilka możliwych sposobów, za pomocą których WordPress może zapisywać pliki, a tym samym „nadpisywać” się podczas aktualizacji. Z punktu widzenia bezpieczeństwa ważną częścią tego procesu jest to, że nowe pliki muszą mieć takie same prawa własności jak stare pliki.
Tak więc WordPress najpierw wykonuje test, pisząc plik bezpośrednio i sprawdzając, kto jest właścicielem wynikowym. Jeśli właściciel pasuje do plików PHP, to wie, że może zapisywać pliki z poprawnym prawem własności (oznacza to, że proces jest „setuid” dla właściciela pliku).
Jeśli plik wynikowy jest własnością innego identyfikatora użytkownika (co jest prawdopodobne, jeśli Apache / PHP działa jako inny użytkownik, np. Użytkownik „www” lub „apache”), WordPress musi użyć innej metody do tworzenia plików za pomocą właściwy właściciel.
Jednym z podejść jest prosty FTP. Jeśli nawiąże połączenie FTP z serwerem, na którym jest włączony, a następnie zapisze pliki, wynikowe pliki będą własnością każdego, kto zaloguje się jako FTP. Pyta więc użytkownika o informacje FTP.
Ale FTP nie jest zbyt bezpieczny. Jak już odkryłeś, inną metodą jest SSH2. Korzystając z biblioteki SSH dla PHP, może w ten sam sposób nawiązać połączenie SSH z serwerem. I że dlatego potrzebuje klucza prywatnego, ponieważ jest przy użyciu tego, aby połączenie wychodzące z powrotem do siebie. Nawiązując to połączenie, można ustawić poświadczenia i zapisywać pliki jako użytkownik, który ma te poświadczenia.
Jeśli martwisz się, że posiadasz te klucze, wygeneruj nowy zestaw kluczy i użyj ich wyłącznie do tego celu.
Aby odpowiedzieć na twoje bezpośrednie pytanie, nie, WordPress nigdzie nie „daje” kluczy. Pobiera pakiet aktualizacji, rozpakowuje go, a następnie używa tych kluczy, aby nawiązać połączenie z powrotem z własnym serwerem (w zasadzie sprzężenie zwrotne), a następnie kopiuje pliki przez to połączenie. W ten sposób poświadczenia oznaczają, że pliki mają poprawną własność i pozwalają uniknąć problemów związanych z bezpieczeństwem posiadania plików WordPress przez główny proces Apache / www / php.