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

159

Estou trabalhando com um repositório no GitHub e toda vez que tento enviar algo, ele pede meu nome de usuário e senha do GitHub. Eu não quero isso fazendo isso.

Eu tentei as instruções em configuração do seu e-mail no Git , ou seja, configure o Git variáveis github.user e github.token, mas isso não fez nenhuma diferença.

Eu não entendo porque isso está acontecendo.

    
por picardo 14.10.2010 / 19:17

12 respostas

27

Você precisa configurar um agente ssh contra o qual você precisa apenas autenticar uma vez. Veja esta resposta no SO para um tutorial.

    
por 14.10.2010 / 19:28
205

Tive um problema semelhante hoje: eu estraguei as coisas na minha cópia de trabalho, então decidi renomear o diretório e clonar meu projeto novamente no github. Mas depois de fazer isso, eu tive que digitar minha senha para fazer qualquer solicitação pull / push, em vez de digitar a senha apenas uma vez como eu costumava fazer.

Isso porque hoje eu usei o protocolo https para clonar o projeto! Para verificar qual protocolo você está usando, basta executar

git config -l

e olhe para a linha que começa com 'remote.origin.url'.

Para alternar protocolos:

git config remote.origin.url [email protected]: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 usuário será seu se você possuir o repositório, ou o nome de usuário do repositório do contrário.

    
por 09.08.2011 / 00:36
28

Se você estiver usando HTTPS em vez de SSH, poderá seguir o seguinte:

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

    git config -l
    

    graças a Sergio Morstabilini

  2. Seu URL remoto será assim: link

  3. Execute este comando:

    git config remote.origin.url https://{USERNAME}:{PASSWORD}@github.com/{USERNAME}/{REPONAME}.git
    
por 03.12.2013 / 23:40
25

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

Usando HTTPS, você pode impedir que o git pergunte ao seu nome de usuário para os remotos do github o seguinte:

git config --global url."https://[email protected]".insteadOf "https://github.com"

E você pode pelo menos reduzir a frequência git pede sua senha com:

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

Onde 28800 são 8 horas. Eu uso essa configuração para inserir minha senha apenas uma vez, quando eu começo meu dia de trabalho.

Depois disso, você terá essas entradas no seu ~/.gitconfig

[url "https://[email protected]"]
    insteadOf = https://github.com

[credential]
    helper = cache --timeout=28800

Fonte:

link

link

    
por 21.11.2014 / 05:27
6

Se você estiver no Windows usando HTTPS, tente o Git Credential Store - ele usa o Windows Credential Store para armazenar 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.

Da próxima vez que você digitar seu nome e senha, ele os lembrará de você.

    
por 23.02.2014 / 12:54
5

Quando você configura uma chave ssh para o github, se ela não for sua chave padrão, você precisará adicionar uma seção ao seu ~/.ssh/config

Host *github.com
    User git
    IdentityFile ~/.ssh/github_id_rsa
    
por 14.10.2010 / 21:45
5

Além disso, se você quiser ser solicitado a fornecer sua senha todas as vezes, mas não apenas o seu nome de usuário, configure o controle remoto como HTTPS com um nome de usuário. Assim [...]

git config remote.origin.url https://[email protected]/repo_owner/repo_name

Depois disso, você será solicitado a fornecer sua senha todas as vezes, mas não o seu nome de usuário.

É assim que eu prefiro, pois gosto de ser forçado a digitar minha senha do github antes de compartilhar com o mundo.

    
por 11.08.2013 / 05:17
2

As coisas são um pouco diferentes se você estiver usando a autenticação de dois fatores como eu sou. Desde que eu não encontrei uma boa resposta em outro lugar, eu vou colocar um aqui para que talvez eu possa encontrá-lo mais tarde.

Se você estiver usando a autenticação de dois fatores, a especificação do nome de usuário / senha não funcionará. Você terá acesso negado. Mas você pode usar um token de acesso ao aplicativo e usar o auxiliar de credencial do git para armazenar em cache isso para você. Aqui estão os links pertinentes:

E não me lembro onde vi isso, mas quando você pediu seu nome de usuário - é aí que você coloca o token de acesso do aplicativo. Em seguida, deixe a senha em branco. Trabalhei no meu mac.

    
por 25.09.2014 / 21:45
1

Além disso, se você estiver usando o Windows, poderá usar:

$ git config --global credential.helper wincred

você só precisa fazer login mais uma vez e depois o git se lembrará.

    
por 05.04.2016 / 16:31
1

usa SSH

Para evitar que o GitHub solicite a senha enquanto pressiona, o ideal é usar SSH ( [email protected]:... ) em vez de URL HTTPS ( https://github.com/... ) e adicione sua chave SSH à sua conta do GitHub . Veja: Qual URL remoto devo usar?

um auxiliar de credencial

Caso contrário, se você realmente precisar usar HTTPS, armazene em cache sua senha do GitHub no Git , você deve usar um auxiliar de credencial para dizer ao Git para lembrar seu nome de usuário e senha do GitHub toda vez que ele fala com o GitHub.

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

.netrc

Outro método é usar a configuração do usuário / senha em ~/.netrc ( _netrc no Windows), por exemplo

machine github.com
login USERNAME
password PASSWORD

OAuth

Use token OAuth ( token de API pessoal ) para pressionar as alterações, por exemplo

git push https://[email protected]/foo/bar

Relacionados:

por 19.06.2016 / 23:27
1

Perguntar o nome de usuário é irritante para mim, mas pedir uma senha é legal, já que garante que você realmente deseja ir a público com suas alterações ...

Então eu adiciono isso ao meu ".gitconfig"

[url "https://[email protected]"]
    insteadOf = https://github.com
    
por 05.06.2016 / 14:21
0

Use o Gerenciador de Credenciais do Git para Windows , se você estiver no Windows.

This project includes:

  • Secure password storage in the Windows Credential Store
  • Multi-factor authentication support for Visual Studio Team Services
  • Two-factor authentication support for GitHub
  • Personal Access Token generation and usage support for Visual Studio Team Services and GitHub
  • Non-interactive mode support for Visual Studio Team Services backed by Azure Directory
  • Kerberos authentication for Team Foundation Server
  • Optional settings for build agent optimization

Simplesmente faça o download da versão mais recente e instale-a.

How to use

You don't. It magically works when credentials are needed.

    
por 07.07.2016 / 15:37