es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Despliegue de Azure App Service con repositorio privado de Github como dependencia falla durante la compilación.

Tengo una aplicación basada en React que utiliza código de otro repositorio privado.

En mi archivo package.json aparece lo siguiente:

"mylib": "github:orgname/mylib"

Y todo funciona correctamente de forma local.

Cuando despliego la aplicación en Azure App Service, obtengo el siguiente error:

npm ERR! Error while executing: 
7npm ERR! C:\Program Files\Git\bin\git.EXE ls-remote -h -t ssh://git@github.com/orgname/mylib.git 
8npm ERR! 
9npm ERR! Host key verification failed. 
10npm ERR! fatal: Could not read from remote repository. 
11npm ERR! 
12npm ERR! Please make sure you have the correct access rights 
13npm ERR! and the repository exists. 
14npm ERR! 
15npm ERR! exited with error code: 128

Obtuve la clave pública desde:

https://[appname].scm.azurewebsites.net/api/sshkey?ensurePublicKey=1

Intenté agregarla a la cuenta, la organización y el repositorio en GitHub, pero aún obtengo el mismo error.

¿Hay algo obvio que me esté perdiendo aquí?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el error está relacionado con la autenticación SSH al intentar acceder al repositorio privado en Github.

    Una posible solución es agregar la clave privada asociada con la clave SSH al Azure App Service para que pueda ser utilizada para autenticar la solicitud al repositorio de Github.

    Aquí hay algunos pasos que se podrían seguir:

    1. Generar un par de claves SSH en el Azure App Service utilizando el siguiente comando en la máquina local:

    ssh-keygen -t rsa -b 4096

    1. Copiar el contenido del archivo de clave pública (usualmente id_rsa.pub) al portapapeles.
    2. Ir a la configuración del repositorio en Github y agregar la clave pública en la sección “Deploy keys” (Claves de implementación).

    3. Reiniciar el Azure App Service.

    Si los pasos anteriores no funcionan, otro enfoque podría ser clonar el repositorio privado utilizando la dirección HTTPS en lugar de la dirección SSH. Esto requeriría el uso de un Token de Acceso Personal (PAT) de Github que se podría agregar como una variable de entorno secreta en el Azure App Service.

    Para hacer esto, sigue estos pasos:

    1. Generar un Token de Acceso Personal (PAT) de Github.
  2. Copiar el token al portapapeles.

  3. En el Azure App Service, ir a Configuración > Configuración de la aplicación > Nueva configuración de la aplicación.

  4. Establecer el nombre de la variable como GITHUB_TOKEN y el valor como el PAT.

  5. En el archivo package.json, cambiar la dirección de dependencia de SSH a HTTPS:

  6. "mylib": "https://github.com/orgname/mylib.git"
    
    1. Implementar el código actualizado en el Azure App Service.

    Utilizar cualquiera de estos enfoques debería resolver el problema de acceso al repositorio privado de Github.

Comments are closed.