Resolver problema de credenciales en Bitbucket

Publicado el 16 marzo 2022 por Daniel Rodríguez @analyticslane

Para aquellos que trabajáis con Bitbucket para alojar vuestros repositorios Git es posible que os habréis encontrado recientemente con un problema de credenciales. Al intentar sincronizar un repositorio, con las mismas contraseñas que empezamos hasta ahora, es posible encontrarse con un error. Esto es porque, a partir del 1 de marzo de 2022, ya no es posible usar las contraseñas de usuario para la autenticación a través de HTTPS. Una de las soluciones para solucionar este problema de credenciales en Bitbucket es crear una contraseña de aplicación. Contraseña con lo que además se mejora la seguridad del sistema al ser posible limitar los permisos para cada aplicación, y poder crear varias aplicaciones.

Solucionar problema de credenciales en Bitbucket

Es posible que, al intentar acceder a un repositorio Git alojado en Bitbucket nos encontremos con un mensaje similar al que se muestra a continuación:

remote: Bitbucket Cloud recently stopped supporting account passwords for Git authentication.
remote: See our community post for more details: https://atlassian.community/t5/x/x/ba-p/1948231
remote: App passwords are recommended for most use cases and can be created in your Personal settings:

Empleando una configuración que funcionaba hasta hace poco. Un problema que aparece porque ya no es posible usar la contraseña de la cuenta para acceder a los repositorios a través de HTTPS. Por lo que es necesario crear lo que llaman una contraseña de aplicación. Para ello hay que acceder a nuestra cuenta de Bitbucket ( https://bitbucket.org/) y pulsar en nuestro avatar en la parte inferior izquierda. Con lo que aparecen unas opciones como la que se muestra en la siguiente pantalla.

Ahora debemos pulsar sobre la opción Personal settings, con lo que se accederá a la siguiente pantalla.

En la que deberemos pulsar primero sobre la opción de App passwords y posteriormente sobre el botón Create app password. Ahora nos aparecerá una ventana como la siguiente en la que será necesario dar un nombre a la aplicación y seleccionar los permisos que se le asignan. Si lo único que necesitamos es sincronizar los repositorios llega con las opciones Read y Write de la opción Repositories. Aunque es posible dar más permisos dependiendo de nuestras necesidades.

Una vez hecho esto se puede pulsar sobre crear, generando una contraseña aleatoria, la cual no se mostrará nunca más, por lo que es necesario guardarla en lugar seguro.

Es importante tener en cuenta que las contraseñas de aplicación son para todos nuestros repositorios, por lo que no es un método con el que se pueda gestionar quién puede acceder qué repositorio.

Revocar las credenciales

El uso de las contraseñas de aplicación tiene varias ventajas, por un lado, es posible definir los permisos de forma atómica para cada credencial y por otro es posible revocar las contraseñas. Por lo que, si sospechamos que la contraseña se ha filtrado, como es el caso, es posible revocar para que no sea posible acceder con esta. Para eso se pulsa sobre la opción Revoke de contraseña sobre la que se desea actuar.

Una vez hecho esto, nos aparecerá una ventana para confirmar que se desee eliminar la contraseña seleccionada.

Uso de las credenciales de aplicación

Ahora que tenemos la credencial de aplicación para clonar un repositorio solamente se tendrá que usar el siguiente comando

En donde es necesario reemplazar <Bitbucket_Username> por el nombre de nuestro usuario, <App_Password> por la contraseña de la aplicación y <Repo_Name> por el nombre del repositorio al que se desea acceder. Por otro lado, en caso de que ya tengamos un repositorio en nuestra máquina solamente se tendrá que actualizar la URL con el siguiente comando

git remote set-url origin https://<Bitbucket_Username>:<App_Password>@bitbucket.org/<Bitbucket_Username>/<Repo_Name>.git

Conclusiones

En esta ocasión se ha visto cómo solucionar el problema de credenciales en Bitbucket que se produjo por los cambios de seguridad en el servicio. Cambios que, como se ha visto en la entrada, son buenos ya que permiten definir de una forma detallada los permisos para cada una de las contraseñas de aplicación que se creen.