Você precisa configurar um agente ssh contra o qual você precisa apenas autenticar uma vez. Veja esta resposta no SO para um tutorial.
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.
Você precisa configurar um agente ssh contra o qual você precisa apenas autenticar uma vez. Veja esta resposta no SO para um tutorial.
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.
Se você estiver usando HTTPS em vez de SSH, poderá seguir o seguinte:
Encontre seu URL remoto (remote.origin.url) com
git config -l
graças a Sergio Morstabilini
Seu URL remoto será assim: link
Execute este comando:
git config remote.origin.url https://{USERNAME}:{PASSWORD}@github.com/{USERNAME}/{REPONAME}.git
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:
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ê.
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
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.
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.
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á.
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?
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.
git config --global credential.helper osxkeychain
( osxkeychain helper
é obrigatório), git config --global credential.helper wincred
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
Use token OAuth ( token de API pessoal ) para pressionar as alterações, por exemplo
git push https://[email protected]/foo/bar
Relacionados:
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
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.