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 del ayudante de credenciales y las conexiones HTTPS a AWS CodeCommit
La siguiente información puede ayudarle a solucionar los problemas más habituales al utilizar el ayudante de credenciales incluido en la AWS CLI y HTTPS para conectarse a los repositorios de CodeCommit.
nota
Aunque la aplicación de ayudante de credenciales es un método admitido para conectarse a CodeCommit mediante el acceso federado, un proveedor de identidad o credenciales temporales, el método recomendado es instalar y utilizar 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.
Temas
Recibo un error al ejecutar el comando git config para configurar el ayudante de credenciales
Aparece un error al leer el nombre de usuario cuando intento clonar un repositorio
Recibo un error de comando no encontrado en Windows al usar el ayudante de credenciales
Se me solicita un nombre de usuario cuando conecto a un repositorio de CodeCommit
Recibo un error al ejecutar el comando git config para configurar el ayudante de credenciales
Problema: cuando intenta ejecutar el comando git config para configurar el ayudante de credenciales para que se comunique con un repositorio de CodeCommit, 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 cuando intento clonar un repositorio
Problema: Al intentar clonar un repositorio con el ayudante de credenciales, aparece un error que indica que el sistema no ha podido leer el nombre de usuario de la URL del repositorio.
Soluciones posibles: El motivo más frecuente de este error es que el archivo .gitconfig no se ha creado o configurado correctamente en el ordenador. Abra el archivo .gitconfig y asegúrese de que el ayudante de credenciales esté configurado correctamente. Si está en un equipo con un sistema operativo 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: después de actualizar la CLI de AWS, en las conexiones de la aplicación ayudante de credenciales a los repositorios de CodeCommit se produce el error con aws codecommit credential-helper $@ get: aws: command not
found.
Causa: el motivo más habitual de este error es que su versión de la CLI de AWS se ha actualizado a una versión que utiliza Python 3. Hay un problema conocido con el paquete MSI. 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 la AWS CLI en Windows usando Python y pip en lugar del MSI. Para obtener más información, consulte Instalar Python, pip y la AWS CLI en Windows.
-
Edite manualmente el archivo
.gitconfigpara cambiar la sección[credential]para que apunte explícitamente aaws.cmden el equipo local. Por ejemplo:[credential] helper = !"\C:\\Program Files\\Amazon\\AWSCLI\\bin\\aws.cmd\" codecommit credential-helper $@ UseHttpPath = true -
Ejecute el comando git config para actualizar el archivo
.gitconfigcon el fin de hacer referencia explícita aaws.cmdy actualice manualmente la variable de entorno PATH para que incluya 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 solicita un nombre de usuario cuando conecto a un repositorio de CodeCommit
Problema: al intentar utilizar el ayudante de credenciales para comunicarse con un repositorio de CodeCommit, aparece un mensaje donde se le solicita su nombre de usuario.
Soluciones posibles: puede configurar su perfil de AWS o asegurarse de que el perfil que utiliza es el que ha configurado para trabajar con 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, claves de acceso y claves secretas, consulte Gestión de claves de acceso para usuarios de IAM y ¿Cómo puedo obtener 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:
-
La AWS CLI se ha configurado para una Región de AWS distinta a la del repositorio.
-
La utilidad Keychain Access tiene guardadas unas credenciales que ya han caducado.
Soluciones posibles: para verificar si la AWS CLI se ha configurado para la región correcta, ejecute el comando aws configure y revise la información que se muestra. Si el repositorio de CodeCommit se encuentra en una Región de AWS distinta a la mostrada para la AWS CLI, deberá ejecutar el comando aws configure y cambiar los valores por los apropiados para dicha 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 que se genera para acceder al repositorio de CodeCommit es temporal, por lo que las credenciales almacenadas en la cadena de claves dejan de funcionar pasados 15 minutos. Si solo se accede a Git con CodeCommit, pruebe lo siguiente:
-
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 archivogitconfig.git config -l --show-origin | grep credentialEn el resultado de este comando, busque resultados similares a los siguientes:
file:/path/to/gitconfig credential.helper=osxkeychainEl archivo indicado al principio de esta línea es el archivo de configuración de Git que debe editar.
-
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 -
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 helperyosxkeychainpara que tengan contexto. Por ejemplo, siosxkeychainse usa para autenticarse en GitHub:[credential "https://git-codecommit.us-east-1.amazonaws\.com"] helper = !aws --profile CodeCommitProfile codecommit credential-helper $@ UseHttpPath = true [credential "https://github.com"] helper = osxkeychainEn esta configuración, Git usará el ayudante de
osxkeychaincuando 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 utilizar el ayudante
osxkeychaincuando se usa el perfil denominadoCodeCommitProfilecon la CLI:[credential] helper = helper = !aws --profileCodeCommitProfilecodecommit credential-helper $@ UseHttpPath = truesugerencia
También puede configurar la línea que sigue a la línea del ayudante de cadenas vacía para que no coincida con CodeCommit si quiere 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, a fin de permitir credenciales almacenadas en caché para GitHub, puede modificar el encabezado tal y como se indica a continuación:
[credential "https://github.com"] helper = osxkeychain -
Si accede a otros repositorios de Git, puede configurar la utilidad Keychain Access para que no suministre credenciales para sus repositorios de CodeCommit. Para configurar la utilidad Keychain Access:
-
Abra la utilidad Keychain Access. (Puede utilizar la función Finder para localizarlo).
-
Busque
git-codecommit.y reemplaceus-east-2.amazonaws.com.rproxy.govskope.caus-east-2por la Región de AWS 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. -
Elija la pestaña Access Control.
-
En Confirm before allowing access, elija
git-credential-osxkeychainy, a continuación, seleccione el signo menos para eliminarla de la lista.nota
Una vez que haya eliminado
git-credential-osxkeychainde 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éctese a CodeCommit con credenciales 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
Tenga en cuenta que al ejecutar este comando con la opción --system 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 utiliza otros servicios de repositorio además de 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
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:
-
La AWS CLI se ha configurado para una Región de AWSdistinta a la del repositorio.
-
De forma predeterminada, Git para Windows instala una utilidad administrador de credenciales de Git que no es compatible con conexiones de CodeCommit que utilizan el ayudante de credenciales de AWS. Una vez instalado, provoca el error de las conexiones al repositorio, aunque el ayudante de credenciales se ha instalado con la AWS CLI y se ha configurado para conexiones a CodeCommit.
-
Es posible que algunas versiones de Git para Windows no cumplan por completo con RFC 2617
y RFC 4559 , lo que podría provocar problemas potenciales con las credenciales de Git y el ayudante de credenciales incluido en la AWS CLI. Para obtener más información, consulte Version 2.11.0(3) does not ask for username/password .
Posibles soluciones:
-
Si intenta utilizar el ayudante de credenciales incluido en la AWS CLI, considere la posibilidad de conectar con las credenciales de Git a través de HTTPS en lugar de utilizar el ayudante de credenciales. Las credenciales de Git configuradas para su usuario de IAM son compatibles con el administrador de credenciales de Git para Windows, a diferencia del ayudante de credenciales para AWS CodeCommit. Para obtener más información, consulte Para usuarios HTTPS mediante credenciales de Git.
Si desea utilizar el ayudante de credenciales, para verificar si la AWS CLI está configurada para la Región de AWS adecuada, ejecute el comando aws configure y revise la información que se muestra. Si el repositorio de CodeCommit se encuentra en una Región de AWS distinta a la mostrada para la AWS CLI, deberá ejecutar el comando aws configure y cambiar los valores por los apropiados para dicha 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 instala el administrador de credenciales de Git u otra utilidad de gestión de credenciales y no desea desinstalarla, puede modificar el archivo
.gitconfigy añadir la gestión de credenciales específica para CodeCommit:-
Abra el Panel de control, seleccione Administrador de credenciales y elimine las credenciales almacenadas para CodeCommit.
-
Abra el archivo
.gitconfigen cualquier editor de texto sin formato, como Notepad.nota
Si trabaja con varios perfiles de Git, puede tener tanto archivos
.gitconfiglocales como globales. Asegúrese de editar el archivo correspondiente. -
Añada la siguiente sección a su archivo
.gitconfig:[credential "https://git-codecommit.*.amazonaws.com"] helper = !aws codecommit credential-helper $@ UseHttpPath = true -
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 ayudante de credenciales para AWS CodeCommit al conectarse a repositorios de CodeCommit y a otro sistema de gestión de credenciales al conectarse 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 utiliza credenciales de Git en un equipo Windows, puede intentar solucionar los problemas de incumplimiento RFC incluyendo su nombre de usuario de Git en la cadena de conexión. Por ejemplo, para solucionar el problema y clonar un repositorio denominado
MyDemoRepoen la región de este de EE. UU. (Ohio):git clone https://Your-Git-Credential-Username@git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepomy-demo-reponota
Este enfoque no funciona si tiene un carácter
@en el nombre de usuario de sus credenciales Git. Deberá codificar la dirección URL (también conocida como escape URL o código por ciento) del carácter.