¿Por qué WordPress necesita mi clave ssh privada para actualizar?

12

La configuración de WordPress para actualizar dentro de la aplicación (es decir, WordPress) es ideal para mí debido a su comodidad. Sin embargo, estoy preocupado por los requisitos. Los campos solicitados que aparecen después de instalando ssh2 para php no solo piden mi clave pública, sino mi clave privada llave también Pensaría que, a lo sumo, solo se requeriría la clave pública.

¿WordPress realmente le da mi clave privada a un servidor para que el servidor pueda cargar el paquete de software correcto en mi servidor? Estoy familiarizado con cómo funcionan las claves privadas / públicas de SSH, por lo que estoy confundido por qué WordPress necesita esto. En todo caso, creo que el mecanismo de actualización ni siquiera necesitaría este protocolo; solo usaría http o ftp para el servidor de paquetes y luego descargaría / instalaría / activaría desde allí.

¿Por qué WordPress necesita mis claves ssh? ¿Hay problemas de seguridad aquí?

    
pregunta Avery Chan 17.09.2013 - 13:24

1 respuesta

11

Esencialmente, WordPress necesita conectarse nuevamente al servidor en el que realmente se está ejecutando.

Hay varias formas posibles en que WordPress puede usar para escribir archivos y, por lo tanto, "sobrescribirse" durante una actualización. Desde una perspectiva de seguridad, la parte importante de este proceso es que los archivos nuevos deben tener la misma propiedad que los archivos antiguos.

Entonces, WordPress realiza primero una prueba escribiendo un archivo directamente y verificando quién es el propietario resultante. Si el propietario coincide con los archivos PHP, sabe que puede escribir archivos con la propiedad correcta (esto significa que el proceso es "configurado" para el propietario del archivo).

Si el archivo resultante es propiedad de un ID de usuario diferente (que es probable si Apache / PHP se ejecuta como un usuario diferente, como el usuario "www" o "apache"), WordPress tiene que usar un método diferente para Crea archivos con el propietario correcto.

Un enfoque es simple FTP. Si realiza una conexión de FTP con el servidor en el que se encuentra, luego escribe los archivos sobre eso, los archivos resultantes serán propiedad de quien inicie sesión como a través de FTP. Por lo tanto, solicita al usuario información de FTP.

Pero FTP no es muy seguro. Entonces, como ha encontrado, otro método es a través de SSH2. Usando la biblioteca SSH para PHP, puede hacer una conexión SSH al servidor de la misma manera. Y esa es la razón por la que necesita una clave privada, porque la utiliza para hacer que una conexión saliente vuelva a sí misma. Al hacer esa conexión, puede establecer credenciales y escribir archivos como el usuario que tiene esas credenciales.

Si le preocupa que tenga esas claves, genere un nuevo conjunto de claves y utilícelas exclusivamente para este fin.

Para responder a su pregunta directa, no, WordPress no "da" las teclas a ninguna parte. Descarga el paquete de actualización, lo desempaqueta y luego usa esas claves para hacer una conexión de nuevo a su propio servidor (loopback, básicamente), y luego copia los archivos a través de esa conexión. Al hacerlo, las credenciales significan que los archivos obtienen la propiedad correcta y evitan los problemas de seguridad de tener los archivos de WordPress propiedad del proceso principal de Apache / www / php.

    
respondido por el Otto 17.09.2013 - 13:57

Lea otras preguntas en las etiquetas