Perché Github chiede nome utente / password quando segue le istruzioni sullo schermo e invia un nuovo repository?


298

Sono il proprietario di un'organizzazione su github e ho appena creato un repository e ho provato a spingere ma sto riscontrando un problema in cui mi sta chiedendo il mio nome utente anche se posso SSH bene:

$ 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':

Che cosa sto facendo di sbagliato? Questo non mi è mai successo prima, ma recentemente ho anche aggiornato a git 1.7.10.3.

Risposte:


662

Non utilizzare invece HTTP utilizzare SSH

modificare

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

per

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

puoi farlo in .git/configarchivio


1
Grazie! Ho appena capito questo dopo aver letto stackoverflow.com/a/10126412/29347 , non penso che github normalmente mi dia un telecomando repository come HTTPS che ha causato confusione.
Kit Sunde,

2
È possibile modificare questa opzione facendo clic sul pulsante in cui si copia l'URL del clone.
Derek Adair,

Per MacOS. Problema quando esegui l'upgrade all'ultimo macos. stackoverflow.com/a/39616339/1445102
1Rhino

12
Puoi anche farlo git remote set-url origin git@github.com:user/repo.git, come dettagliato in stackoverflow.com/questions/10126381/…
E infine il

54

Ho avuto lo stesso problema e mi chiedevo perché non fosse successo con un repository bitbucket clonato con https. Esaminando un po 'ho scoperto che la configurazione per il repository BB aveva un URL che includeva il mio nome utente. Quindi ho modificato manualmente la configurazione per il mio repository GH in questo modo e voilà, non più il nome utente richiesto. Sono su Windows.

Modifica your_repo_dir/.git/config(ricorda: la .gitcartella è nascosta)

Modificare:

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

per:

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

Salva il file. Fai un git pulltest.

Il modo corretto per farlo è probabilmente usando i comandi git bash per modificare l'impostazione, ma la modifica diretta del file non sembra essere un problema.


Questo è un buon punto, se includi il nome utente verrà gestito dal portachiavi del sistema operativo (almeno dovrebbe essere in OSX e apparentemente anche in Windows). Non c'è differenza tra la modifica del file con il blocco note o con vim / emacs / nano / vi, non mi preoccuperei così tanto dello snobismo tecnico, è comunque solo un semplice file di testo.
Kit Sunde,

20

Ecco una risposta ufficiale a questo:

Se Git ti richiede un nome utente e una password ogni volta che tenti di interagire con GitHub, probabilmente stai usando l'URL del clone HTTPS per il tuo repository.

L'uso di un URL remoto HTTPS presenta alcuni vantaggi: è più facile da configurare rispetto a SSH e di solito funziona attraverso firewall e proxy rigidi. Tuttavia, ti chiede anche di inserire le tue credenziali GitHub ogni volta che esegui il pull o il push di un repository.

Puoi configurare Git per memorizzare la tua password. Se desideri configurarlo, leggi tutto sull'impostazione della memorizzazione nella cache della password .


1
Grazie. Direi con Github che non è più facile installarlo se
finisci

Questa è una risposta a una domanda perché la domanda pone, PERCHÉ ?
eli

14

Migliorando sulla risposta di @ Ianl ,

Sembra che se l'autenticazione in 2 passaggi è abilitata, è necessario utilizzare il token anziché la password. Puoi generare un token qui .

Se si desidera disabilitare le richieste sia per il nome utente che per la password, è possibile impostare l'URL come segue:

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

Si noti che l'URL ha sia il nome utente che la password. Inoltre, il .git/configfile dovrebbe mostrare le tue impostazioni correnti.


Aggiornamento 20200128:

Se non si desidera archiviare la password nel file di configurazione, è possibile generare il proprio token personale e sostituire la password con il token. Ecco alcuni dettagli .

Sembrerebbe così -

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

È sicuro? Qualcuno può semplicemente accedere a queste informazioni dal mio computer?
Akaisteph7,

Sì, possono accedere dal tuo computer poiché sono archiviati in testo normale nel .git/configfile
kaushal

11

una nota aggiuntiva:

se hai già aggiunto un telecomando ($ git remote add origin ...) e hai bisogno di cambiare quel particolare telecomando, allora fai prima una rimozione remota ($ git remote rm origin), prima di aggiungere nuovamente l'URL repo nuovo e migliorato (dove "origine" era il nome per il repository remoto).

quindi per usare l'esempio originale:

$ 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

4
Non è necessario rimuovere il telecomando. Puoi semplicemente cambiare l'URL:git remote set-url origin https://github-username@github.com/WEMP/project-slideshow.git
shovavnik il

8

Se stai utilizzando HTTPS, verifica che l'URL sia corretto. Per esempio:

$ 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
Questo è un ottimo punto! Se hai un refuso nell'URL, ti verrà richiesto il 'Nome utente' invece di essere informato che il repository non esiste.
dmitrii,

5

Ho appena ricevuto un'email da un amministratore di github.com che afferma quanto segue: "Normalmente consigliamo alle persone di utilizzare l'URL HTTPS a meno che non abbiano un motivo specifico per utilizzare il protocollo SSH. HTTPS è sicuro e più facile da configurare, quindi per impostazione predefinita, quando viene creato un nuovo repository. "

La richiesta della password accetta effettivamente i normali dettagli di accesso a github.com. Un tutorial su come impostare la memorizzazione nella cache delle password è disponibile all'indirizzo https://help.github.com/articles/set-up-git#password-caching . Ho seguito i passaggi del tutorial e ha funzionato per me.



4

Perché stai usando il modo HTTPS . HTTPS richiede che tu digiti l'accesso al tuo account ogni volta che provi a fare push o pull , ma c'è anche un modo, chiamato SSH , e ti permette di dire a git, che ti do il permesso con il mio account per questo pc, e non chiedere mai di nuovo su qualsiasi accesso dell'utente . Per usarlo, devi generare la chiave SSH e aggiungerla nell'account Github solo una volta . Per farlo, puoi seguire questi passaggi

Come generare chiave SSH per Github


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.