2010-10-14 17:17:28 +0000 2010-10-14 17:17:28 +0000
174
174

Como posso garantir que Git não me pede meu nome de usuário e senha do GitHub?

Estou trabalhando com uma repo no GitHub e toda vez que tento empurrar algo, ele pede meu nome de usuário e senha do GitHub. Eu não quero que ele faça isso.

Eu tentei as instruções em configurando seu e-mail em Git , nomeadamente configurar as variáveis github.user e github.token de Git, mas isso não fez nenhuma diferença.

Eu não entendo porque isso está acontecendo.

Respostas (12)

215
215
215
2011-08-08 22:36:29 +0000

Tivemos hoje um problema semelhante: Fiz asneira na minha cópia de trabalho, por isso decidi renomear o directório e clonar novamente o meu projecto a partir do github. Mas depois de fazer isso, tive de introduzir a minha palavra-passe para fazer qualquer pedido pull/push, em vez de introduzir a palavra-passe apenas uma vez, como costumava fazer.

Isso foi porque hoje utilizei o protocolo https para clonar o projecto! Para verificar que protocolo está a usar, basta correr

git config -l

e olhar para a linha que começa com ‘remote.origin.url’.

Para mudar de protocolo:

git config remote.origin.url git@github.com:the_repository_username/your_project.git

the_repository_username e your_project devem ser substituídos pelo nome do repositório apropriado e pelo proprietário desse repositório. O nome de utilizador será seu se for proprietário do repositório, ou o nome de utilizador do proprietário do repositório caso contrário.

34
34
34
2010-10-14 17:28:04 +0000

É necessário criar um ssh-agente contra o qual só é necessário autenticar uma vez. Ver esta resposta na SO para um howto.

31
31
31
2013-12-03 22:40:15 +0000

Se estiver a utilizar HTTPS em vez de SSH , pode seguir o seguinte :

  1. Encontre o seu URL remoto (remote.origin.url) com

    1. O seu URL remoto será assim : https://{USERNAME}@github.com/{USERNAME}/{REPONAME}.git
  2. Execute este comando :

26
26
26
2014-11-21 04:27:04 +0000

Eu prefiro usar HTTPS, acho mais fácil e seguro do que configurar as chaves ssh.

Usando HTTPS, você pode evitar que o git peça o seu nome de usuário para os comandos github com o seguinte:

git config --global url."https://yourusername@github.com".insteadOf "https://github.com"

E você pode pelo menos reduzir a freqüência que o git pede a sua senha com:

git config --global credential.helper 'cache --timeout=28800'

Onde 28800 são 8 horas. Eu uso esta configuração para introduzir a minha password apenas uma vez, quando começo o meu dia de trabalho.

Depois disso terá estas entradas dentro do seu ~/.gitconfig

[url "https://yourusername@github.com"]
    insteadOf = https://github.com

[credential]
    helper = cache --timeout=28800

Fonte: http://git-scm.com/docs/git-credential-cache http://git-scm.com/docs/git-config

6
6
6
2014-02-23 11:54:29 +0000

Se estiver no Windows usando HTTPS, tente a Git Credential Store - ela usa a Loja de Credenciais do Windows para guardar o seu nome e senha.

Windows Credential Store for Git
This application is a small helper app designed to follow the 
git credentials API as defined by the Git Documentation.

Installation
1. Download the git-credential-winstore.exe application
2. Run it! If you have GIT in your PATH, it should just work.

Então na próxima vez que você digitar o seu nome e senha ele irá lembrá-los para você.

6
6
6
2010-10-14 19:45:54 +0000

Ao configurar uma chave ssh para o github, se não for a sua chave predefinida, terá de adicionar uma secção aos seus ~/.ssh/config

Host *github.com
    User git
    IdentityFile ~/.ssh/github_id_rsa
5
5
5
2013-08-11 03:17:37 +0000

Além disso, se desejar que lhe seja pedida sempre a sua palavra-passe, mas não o seu nome de utilizador, então configura o comando como HTTPS com um nome de utilizador. Assim…

git config remote.origin.url https://USERNAME@github.com/repo_owner/repo_name

Depois disto, ser-lhe-á pedida sempre a sua palavra-passe, mas não o seu nome de utilizador.

É assim que eu prefiro, pois gosto de ser obrigado a digitar a minha palavra-passe github antes de a partilhar com o mundo.

2
2
2
2014-09-25 19:45:49 +0000

As coisas são um pouco diferentes se se estiver a usar o factor 2, tal como eu. Uma vez que não encontrei uma boa resposta noutro sítio, vou colar uma aqui para talvez a encontrar mais tarde.

Se está a usar o factor 2 auth, então especificar username/password não vai funcionar - o acesso é-lhe negado. Mas você pode usar um token de acesso à aplicação e usar o ajudante de credenciais do git para guardar isso para si. Aqui estão os links pertinentes:

E não me lembro onde vi isto mas quando lhe é pedido o seu nome de utilizador - é aí que cola o código de acesso à aplicação. Depois deixe a password em branco. Funcionou no meu mac.

2
2
2
2016-06-19 21:27:34 +0000

use SSH

Para evitar que o GitHub peça a senha enquanto pressiona, idealmente você deve usar SSH (git@github.com:...) em vez de HTTPS URL (https://github.com/...) e adicionar sua chave SSH à sua conta GitHub . Veja: Que URL remoto devo usar?

um helper de credenciais

Caso contrário, se você realmente precisar usar HTTPS, para guardar sua senha GitHub em Git , você deve usar a helper de credenciais para dizer a Git para lembrar seu nome de usuário e senha GitHub toda vez que ele falar com GitHub.

  • Mac: git config --global credential.helper osxkeychain (osxkeychain helper é necessário),
  • Windows: git config --global credential.helper wincred
  • Linux e outros: git config --global credential.helper cache

.netrc

Outro método é usar configurar seu usuário/senha em ~/.netrc (_netrc no Windows), e. g.

machine github.com
login USERNAME
password PASSWORD

OAuth

Use OAuth token Personal API token ) para pressionar as alterações, e.g.

git push https://4UTHT0KEN@github.com/foo/bar
  • *

Related:

1
1
1
2016-06-05 12:21:50 +0000

Pedir o nome de utilizador é irritante para mim, mas pedir uma palavra-passe é simpático, uma vez que garante que quer mesmo tornar públicas as suas alterações…

Por isso, basta adicionar isto ao meu “.gitconfig”

[url "https://myusername@github.com"]
    insteadOf = https://github.com
1
1
1
2016-04-05 14:31:43 +0000

Também se estiver a usar Windows, pode usar:

$ git config --global credential.helper wincred

só tem de assinar mais uma vez e depois o git vai lembrar-se.

0
0
0
2016-07-07 13:37:29 +0000

Use Git Credential Manager for Windows , se estiver no Windows.

** Este projecto inclui** :

  • Armazenamento seguro de senhas na Loja de Credenciais do Windows
  • Suporte de autenticação multi-factor para Visual Studio Team Services
  • Suporte de autenticação de dois factores para GitHub
  • Geração de Tokens de Acesso Pessoal e suporte de utilização para Visual Studio Team Services e GitHub
  • Suporte de modo não-interactivo para Visual Studio Team Services suportado pelo Azure Directory
  • Autenticação Kerberos para Team Foundation Server
  • Configurações opcionais para optimização de agentes de construção

Basta descarregar a última versão e instalá-lo.

** Como utilizar**

Não utiliza. Ele magicamente funciona quando as credenciais são necessárias.