¿Por qué Github solicita nombre de usuario / contraseña cuando sigue las instrucciones en pantalla y empuja un nuevo repositorio?


298

Soy el propietario de una organización en github y acabo de crear un repositorio e intenté presionar, pero me encuentro con un problema en el que me está pidiendo mi nombre de usuario a pesar de que puedo SSH bien:

$ ssh -T git@github.com
Hi Celc! You've successfully authenticated, but GitHub does not provide shell access.
$ git add .
$ git commit -m 'first commit'
[master (root-commit) 3f1b963] first commit
 6 files changed, 59 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 main.js
 create mode 100644 package.json
 create mode 100644 readme.markdown
 create mode 100644 views/index.ejs
 create mode 100644 views/layout.ejs
$ git remote add origin https://github.com/WEMP/project-slideshow.git
$ git push -u origin master
Username for 'https://github.com':

¿Qué estoy haciendo mal? Esto nunca me había pasado antes, pero recientemente también actualicé a git 1.7.10.3.

Respuestas:


662

No use HTTP use SSH en su lugar

cambio

https://github.com/WEMP/project-slideshow.git 

a

git@github.com:WEMP/project-slideshow.git

puedes hacerlo en .git/configarchivo


1
¡Gracias! Acabo de descubrir esto después de leer stackoverflow.com/a/10126412/29347 , no creo que github normalmente me dé un repositorio remoto como HTTPS, lo que causó cierta confusión.
Kit Sunde

2
Puede cambiar esta opción haciendo clic en el botón donde copia su URL de clonación.
Derek Adair

Para MacOS Emita cuando actualice a las últimas macos. stackoverflow.com/a/39616339/1445102
1Rhino

12
También puede hacerlo git remote set-url origin git@github.com:user/repo.git, como se detalla en stackoverflow.com/questions/10126381/…
Y finalmente el

54

Tuve este mismo problema y me pregunté por qué no sucedió con un repositorio de bitbucket que se clonó con https. Al examinarlo un poco, descubrí que la configuración para el repositorio de BB tenía una URL que incluía mi nombre de usuario. Así que edité manualmente la configuración para mi repositorio GH como tal y listo, no más avisos de nombre de usuario. Estoy en Windows

Editar your_repo_dir/.git/config(recuerde: la .gitcarpeta está oculta)

Cambio:

https://github.com/WEMP/project-slideshow.git

a:

https://*username*@github.com/WEMP/project-slideshow.git

Guarda el archivo. Haz una git pullpara probarlo.

Probablemente, la forma correcta de hacerlo es usar los comandos de git bash para editar la configuración, pero editar el archivo directamente no parece ser un problema.


Ese es un buen punto, si incluye el nombre de usuario, será manejado por el llavero del sistema operativo (al menos debería en OSX, y aparentemente también en Windows). No hay diferencia entre editar el archivo con el bloc de notas o con vim / emacs / nano / vi, no me preocuparía tanto por el esnobismo técnico, de todos modos es solo un archivo de texto sin formato.
Kit Sunde

20

Aquí hay una respuesta oficial a esto:

Si Git le solicita un nombre de usuario y una contraseña cada vez que intenta interactuar con GitHub, probablemente esté utilizando la URL de clonación HTTPS para su repositorio.

El uso de una URL remota HTTPS tiene algunas ventajas: es más fácil de configurar que SSH, y generalmente funciona a través de servidores de seguridad y servidores proxy estrictos. Sin embargo, también le solicita que ingrese sus credenciales de GitHub cada vez que extrae o empuja un repositorio.

Puede configurar Git para almacenar su contraseña por usted. Si desea configurar eso, lea todo sobre cómo configurar el almacenamiento en caché de contraseñas .


1
Gracias. Yo diría con Github que no es más fácil de configurar si terminas aquí (:
ecoologic

Esta es una respuesta a una pregunta porque la pregunta es, ¿POR QUÉ ?
eli

14

Mejorando la respuesta de @ Ianl ,

Parece que si la autenticación de 2 pasos está habilitada, debe usar token en lugar de contraseña. Podrías generar una ficha aquí .

Si desea deshabilitar las solicitudes tanto para el nombre de usuario como para la contraseña, puede configurar la URL de la siguiente manera:

git remote set-url origin https://username:password@github.com/WEMP/project-slideshow.git

Tenga en cuenta que la URL tiene tanto el nombre de usuario como la contraseña. Además, el .git/configarchivo debe mostrar su configuración actual.


Actualización 20200128:

Si no desea almacenar la contraseña en el archivo de configuración, puede generar su token personal y reemplazar la contraseña con el token. Aquí hay algunos detalles .

Se vería así:

git remote set-url origin https://username:token@github.com/WEMP/project-slideshow.git

¿Es esto seguro? ¿Alguien puede acceder a esta información desde mi computadora?
Akaisteph7

Sí, pueden acceder desde su computadora ya que están almacenados en texto sin formato en el .git/configarchivo
kaushal

11

una nota adicional:

si ya ha agregado un control remoto ($ git remote add origin ...) y necesita cambiar ese control remoto en particular, primero realice una eliminación remota ($ git remote rm origin), antes de volver a agregar la URL de repositorio nueva y mejorada (donde "origen" era el nombre del repositorio remoto).

para usar el ejemplo original:

$ git remote add origin https://github.com/WEMP/project-slideshow.git
$ git remote rm origin
$ git remote add origin https://github-username@github.com/WEMP/project-slideshow.git

44
No tiene que quitar el control remoto. Puede cambiar la URL:git remote set-url origin https://github-username@github.com/WEMP/project-slideshow.git
shovavnik

8

Si está utilizando HTTPS, asegúrese de que su URL sea correcta. Por ejemplo:

$ git clone https://github.com/wellle/targets.git
Cloning into 'targets'...
Username for 'https://github.com': ^C

$ git clone https://github.com/wellle/targets.vim.git
Cloning into 'targets.vim'...
remote: Counting objects: 2182, done.
remote: Total 2182 (delta 0), reused 0 (delta 0), pack-reused 2182
Receiving objects: 100% (2182/2182), 595.77 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1044/1044), done.

1
Ese es un gran punto! Si tiene un error tipográfico en la URL, se le solicitará el 'Nombre de usuario' en lugar de que se le indique que el repositorio no existe.
dmitrii

5

Acabo de recibir un correo electrónico de un administrador de github.com que dice lo siguiente: "Normalmente aconsejamos a las personas que usen la URL HTTPS a menos que tengan una razón específica para usar el protocolo SSH. HTTPS es seguro y más fácil de configurar, así que de manera predeterminada, se crea un nuevo repositorio ".

La solicitud de contraseña acepta los detalles de inicio de sesión normales de github.com. Puede encontrar un tutorial sobre cómo configurar el almacenamiento en caché de contraseñas en https://help.github.com/articles/set-up-git#password-caching . Seguí los pasos en el tutorial, y funcionó para mí.



4

Porque estás usando la forma HTTPS . HTTPS requiere que ingrese el acceso a su cuenta cada vez que intenta presionar o tirar , pero también hay una forma, llamada SSH , y le permite decirle a git, que le doy permiso con mi cuenta para esta PC, y nunca preguntar nuevamente sobre cualquier acceso de usuario . Para usarlo, debe generar la clave SSH y agregarla a su cuenta de Github solo una vez . Para ello, puede seguir estos pasos

Cómo generar la clave SSH para Github


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.