Solución de problemas con el asistente de credenciales y HTTPS las conexiones a AWS CodeCommit - AWS CodeCommit

AWS CodeCommit ya no está disponible para nuevos clientes. Los clientes existentes de AWS CodeCommit pueden seguir utilizando el servicio con normalidad. Más información

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Solución de problemas con el asistente de credenciales y HTTPS las conexiones a AWS CodeCommit

La siguiente información puede ayudarte a solucionar problemas habituales al utilizar el asistente de credenciales incluido con el repositorio AWS CLI y HTTPS para conectarte a los repositorios. CodeCommit

nota

Si bien el asistente de credenciales es un método compatible para conectarse CodeCommit mediante un acceso federado, un proveedor de identidad o credenciales temporales, el método recomendado es instalar y usar la utilidad. git-remote-codecommit Para obtener más información, consulte Pasos de configuración para conexiones HTTPS a AWS CodeCommit con git-remote-codecommit.

Recibo un error al ejecutar el comando git config para configurar el ayudante de credenciales

Problema: cuando intentas ejecutar el comando git config para configurar el asistente de credenciales para que se comunique con un CodeCommit repositorio, aparece un error que indica que hay muy pocos argumentos o un indicador de uso que sugiere comandos y sintaxis de Git config.

Posibles soluciones: el motivo más común de este error es que se utilizan comillas simples para el comando en un sistema operativo Windows o comillas dobles para el comando en un sistema operativo Linux, macOS o Unix. La sintaxis correcta es la siguiente:

  • Windows: git config --global credential.helper "!aws codecommit credential-helper $@"

  • Linux, macOS o Unix: git config --global credential.helper '!aws codecommit credential-helper $@'

Aparece un error al leer el nombre de usuario al intentar clonar un repositorio

Problema: al intentar clonar un repositorio con el asistente de credenciales, aparece un error que indica que el sistema no ha podido leer el nombre de usuario del repositorio. URL

Posibles soluciones: el motivo más común de este error es que el archivo.gitconfig no se ha creado o configurado correctamente en el ordenador. Abre el archivo.gitconfig y asegúrate de que el asistente de credenciales esté configurado correctamente. Si está en un ordenador con Linux, macOS o Unix, asegúrese también de que el valor de $HOME esté configurado correctamente para su sistema.

Recibo un error de comando no encontrado en Windows al usar el ayudante de credenciales

Problema: Tras actualizarlo AWS CLI, se produce un error en las conexiones del asistente de credenciales a los CodeCommit repositorios. aws codecommit credential-helper $@ get: aws: command not found

Causa: el motivo más común de este error es que la AWS CLI versión se ha actualizado a una versión que usa Python 3. Hay un problema conocido con el MSI paquete. Para verificar si tiene una de las versiones afectadas, abra una línea de comandos y ejecute el siguiente comando: aws --version

Si la versión de Python de salida comienza por 3, tiene una versión afectada. Por ejemplo:

aws-cli/1.16.62 Python/3.6.2 Darwin/16.7.0 botocore/1.12.52

Soluciones posibles: puede solucionar este tema con una de las siguientes operaciones:

  • Instale y configure AWS CLI en Windows mediante Python y pip en lugar deMSI. Para obtener más información, consulte Instalar Python, pip y el AWS CLI en Windows.

  • Edite manualmente el archivo .gitconfig para cambiar la sección [credential] para que apunte explícitamente a aws.cmd en el equipo local. Por ejemplo:

    [credential] helper = !"\C:\\Program Files\\Amazon\\AWSCLI\\bin\\aws.cmd\" codecommit credential-helper $@ UseHttpPath = true
  • Ejecute el git config comando para actualizar el .gitconfig archivo para que haga referencia aws.cmd explícita y actualice manualmente la variable de PATH entorno para incluir la ruta al comando, según sea necesario. Por ejemplo:

    git config --global credential.helper "!aws.cmd codecommit credential-helper $@" git config --global credential.UseHttpPath true

Se me pide un nombre de usuario cuando me conecto a un CodeCommit repositorio

Problema: cuando intentas usar el asistente de credenciales para comunicarte con un CodeCommit repositorio, aparece un mensaje en el que se te pide tu nombre de usuario.

Posibles soluciones: configure su AWS perfil o asegúrese de que el perfil que está utilizando es el que ha configurado para trabajar. CodeCommit Para obtener más información sobre la configuración, consulte Pasos para configurar conexiones HTTPS a repositorios de AWS CodeCommit en Linux, macOS o Unix con la aplicación de ayudante de credenciales de AWS CLI o Pasos para configurar conexiones HTTPS a repositorios de AWS CodeCommit en Windows con la aplicación de ayudante de credenciales de la AWS CLI. Para obtener más información sobre IAM las claves de acceso y las claves secretas, consulte Administrar las claves de acceso de IAM los usuarios y ¿Cómo se obtienen las credenciales?

Git para macOS: he configurado el ayudante de credenciales correctamente, pero ahora no tengo acceso a mi repositorio (403)

Problema: en macOS, parece que el ayudante de credenciales no accede o no puede utilizar sus credenciales según lo previsto. Esto puede deberse a dos problemas diferentes:

  • AWS CLI Está configurado para un repositorio Región de AWS diferente al lugar en el que existe el repositorio.

  • La utilidad Keychain Access tiene guardadas unas credenciales que ya han caducado.

Posibles soluciones: para comprobar si AWS CLI está configurada para la región correcta, ejecute el aws configure comando y revise la información que se muestra. Si el CodeCommit repositorio se encuentra en un repositorio Región de AWS diferente al que se muestra para el archivo AWS CLI, debe ejecutar el aws configure comando y cambiar los valores por otros adecuados para esa región. Para obtener más información, consulte Paso 1: Configuración inicial de CodeCommit.

La versión predeterminada de Git publicada en OS X y macOS utiliza la utilidad Keychain Access para guardar las credenciales generadas. Por motivos de seguridad, la contraseña generada para acceder al CodeCommit repositorio es temporal, por lo que las credenciales almacenadas en el llavero dejan de funcionar transcurridos unos 15 minutos. Si solo accedes a Git con CodeCommit, prueba lo siguiente:

  1. En Terminal, ejecute el comando git config para buscar el archivo de configuración de Git (gitconfig) donde está definida la utilidad Keychain Access. En función de su sistema local y preferencias, es posible que tenga más de un archivo gitconfig.

    git config -l --show-origin | grep credential

    En el resultado de este comando, busque resultados similares a los siguientes:

    file:/path/to/gitconfig credential.helper=osxkeychain

    El archivo indicado al principio de esta línea es el archivo de configuración de Git que debe editar.

  2. Para editar el archivo de configuración de Git, utilice un editor de texto sin formato o ejecute el siguiente comando:

    nano /usr/local/git/etc/gitconfig
  3. Modifique la configuración con una de las siguientes estrategias:

    • Comente o elimine la sección de credenciales que contiene helper = osxkeychain. Por ejemplo:

      # helper = osxkeychain
    • Actualice las secciones del ayudante de credenciales aws credential helper y osxkeychain para que tengan contexto. Por ejemplo, osxkeychain se usa para autenticarse GitHub en:

      [credential "https://git-codecommit.us-east-1.amazonaws\.com"] helper = !aws --profile CodeCommitProfile codecommit credential-helper $@ UseHttpPath = true [credential "https://github.com"] helper = osxkeychain

      En esta configuración, Git usará el ayudante de osxkeychain cuando el host remoto coincida con “https://github.com” y el ayudante de credenciales cuando el host remoto coincida con “https://git-codecommit\.us-east-1\.amazonaws.com”.

    • Incluye un ayudante de cadena vacío antes del ayudante de credenciales. Por ejemplo, para no usar el osxkeychain asistente cuando se usa el perfil denominado CodeCommitProfile con: CLI

      [credential] helper = helper = !aws --profile CodeCommitProfile codecommit credential-helper $@ UseHttpPath = true
      sugerencia

      También puede configurar la línea que sigue a la línea auxiliar de cadenas vacía para que no coincida CodeCommit si desea que excluya todos los perfiles:

      helper = !aws codecommit credential-helper $@

    De forma alternativa, si desea seguir utilizando la utilidad Keychain Access para almacenar en caché credenciales para otros repositorios de Git, modifique el encabezado en lugar de incluir un comentario en la línea. Por ejemplo, para permitir las credenciales en caché GitHub, puede modificar el encabezado de la siguiente manera:

    [credential "https://github.com"] helper = osxkeychain

Si accedes a otros repositorios con Git, puedes configurar la utilidad Keychain Access para que no proporcione credenciales para tus CodeCommit repositorios. Para configurar la utilidad Keychain Access:

  1. Abra la utilidad Keychain Access. (Puede utilizar la función Finder para localizarlo).

  2. Busca y reemplaza git-codecommit.us-east-2.amazonaws.com us-east-2 con el Región de AWS lugar donde se encuentra el repositorio. Marque la fila, abra el menú contextual (haga clic con el botón derecho) y, a continuación, elija Get Info.

  3. Elija la pestaña Access Control.

  4. En Confirm before allowing access, elija git-credential-osxkeychain y, a continuación, seleccione el signo menos para eliminarla de la lista.

    nota

    Una vez que haya eliminado git-credential-osxkeychain de la lista, puede ver un cuadro de diálogo cada vez que ejecute un comando de Git. Elija Deny para continuar. Si las ventanas emergentes le interrumpen demasiado, aquí tiene algunas opciones alternativas:

    • Conéctate a CodeCommit las credenciales de Using SSH o Git en lugar del ayudante de credenciales con. HTTPS Para obtener más información, consulte Para conexiones SSH en Linux, macOS o Unix y Configuración de usuarios HTTPS mediante credenciales de Git.

    • En la utilidad Keychain Access, en la pestaña Access Control de git-codecommit.us-east-2.amazonaws.com, elija la opción Allow all applications to access this item (access to this item is not restricted). Esto impide que aparezcan ventanas emergentes, pero las credenciales acabarán caducando (de media, duran unos 15 minutos) y aparece un mensaje de error 403. Cuando suceda esto, elimine el elemento de la cadena de claves para restaurar la funcionalidad.

    • Instalar una versión de Git que no utilice la cadena de claves de forma predeterminada, o bien

    • Considere una solución de scripting para eliminar el elemento de la cadena de claves. Para ver una muestra de una solución con scripts generada por la comunidad, consulte Mac OS X Script to Periodically Delete Cached Credentials in the OS X Certificate Store en Integraciones de productos y servicios.

Si desea que Git deje de utilizar la utilidad Keychain Access por completo, puede configurar Git para dejar de utilizar osxkeychain como ayudante de credenciales. Por ejemplo, si abre un terminal y ejecuta el comando git config --system credential.helper y devuelve osxkeychain, Git está configurado para usar la utilidad Keychain Access. Puede cambiarlo ejecutando el siguiente comando:

git config --system --unset credential.helper

Ten en cuenta que ejecutar este comando con la --system opción cambia el comportamiento de Git en todo el sistema para todos los usuarios, y esto podría tener consecuencias no deseadas para otros usuarios o para otros repositorios si además utilizas otros servicios de repositorio. CodeCommit Tenga en cuenta también que este enfoque podría requerir el uso de sudo y que su cuenta podría no tener permisos del sistema suficientes para aplicar este cambio. Asegúrese de verificar que el comando se ha aplicado correctamente ejecutando el comando git config --system credential.helper de nuevo. Para obtener más información consulte Customizing Git - Git Configuration y este artículo en Stack Overflow.

Git para Windows: he instalado Git para Windows, pero no tengo permiso para acceder a mi repositorio (403)

Problema: En Windows, parece que el ayudante de credenciales no accede o no puede utilizar sus credenciales según lo previsto. Esto puede deberse a diferentes problemas:

  • AWS CLI Está configurado para un repositorio Región de AWS diferente de aquel en el que existe el repositorio.

  • De forma predeterminada, Git para Windows instala una utilidad Git Credential Manager que no es compatible con CodeCommit las conexiones que utilizan el asistente de AWS credenciales. Cuando se instala, provoca que se produzcan errores en las conexiones al repositorio aunque el ayudante de credenciales se haya instalado con el repositorio y se haya configurado para conectarse a él. AWS CLI CodeCommit

  • Es posible que algunas versiones de Git para Windows no cumplan plenamente con las normas RFC2617 y RFC4559, lo que podría provocar problemas tanto con las credenciales de Git como con el asistente de credenciales incluido en el. AWS CLI Para obtener más información, consulte Version 2.11.0(3) does not ask for username/password.

Soluciones posibles:

  • Si estás intentando usar el ayudante de credenciales incluido en el AWS CLI, considera conectarte con las credenciales de Git HTTPS en vez de usar el ayudante de credenciales. Las credenciales de Git configuradas para su IAM usuario son compatibles con el Administrador de credenciales de Git para Windows, a diferencia del asistente de credenciales de. AWS CodeCommit Para obtener más información, consulte Para usuarios HTTPS mediante credenciales de Git.

    Si quieres usar el asistente de credenciales, para comprobar si AWS CLI está configurado correctamente Región de AWS, ejecuta el aws configure comando y revisa la información que se muestra. Si el CodeCommit repositorio se encuentra en un repositorio Región de AWS diferente al que se muestra para el AWS CLI, debe ejecutar el aws configure comando y cambiar los valores por otros adecuados para esa región. Para obtener más información, consulte Paso 1: Configuración inicial de CodeCommit.

  • Si es posible, desinstale y reinstale Git para Windows. Al instalar Git para Windows, desmarque la casilla de verificación de la opción para instalar la utilidad Administrador de credenciales de Git. Este gestor de credenciales no es compatible con el ayudante de credenciales para AWS CodeCommit. Si has instalado el Gestor de Credenciales de Git u otra utilidad de administración de credenciales y no deseas desinstalarla, puedes modificar el .gitconfig archivo y añadir la administración de credenciales para: CodeCommit

    1. Abre el Panel de control, selecciona el Administrador de credenciales y elimina las credenciales almacenadas para. CodeCommit

    2. Abra el archivo .gitconfig en cualquier editor de texto sin formato, como Notepad.

      nota

      Si trabaja con varios perfiles de Git, puede tener tanto archivos .gitconfig locales como globales. Asegúrese de editar el archivo correspondiente.

    3. Añada la siguiente sección a su archivo .gitconfig:

      [credential "https://git-codecommit.*.amazonaws.com"] helper = !aws codecommit credential-helper $@ UseHttpPath = true
    4. Guarde el archivo y, a continuación, abra una nueva sesión de línea de comandos antes de intentar conectarse de nuevo.

    También puede utilizar este enfoque si desea utilizar el asistente de credenciales AWS CodeCommit cuando se conecte a los CodeCommit repositorios y otro sistema de administración de credenciales cuando se conecte a otros repositorios alojados, como los repositorios. GitHub

    Para restablecer el ayudante de credenciales que se usa de forma predeterminada, puede utilizar la opción --system en lugar de --global o --local al ejecutar el comando git config.

  • Si utilizas las credenciales de Git en un ordenador con Windows, puedes intentar solucionar cualquier problema de RFC incumplimiento incluyendo el nombre de usuario de la credencial de Git como parte de la cadena de conexión. Por ejemplo, para solucionar el problema y clonar un repositorio llamado MyDemoRepo en la región EE.UU. Este (Ohio):

    git clone https://Your-Git-Credential-Username@git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo
    nota

    Este enfoque no funciona si tiene un carácter @ en el nombre de usuario de sus credenciales Git. Debe URL codificar el carácter (también conocido como codificación de URL escape o codificación porcentual).