Estou usando o Git há algum tempo, mas as solicitações constantes de senha estão começando a me deixar maluco.
Estou usando o Mac OS X e o GitHub e configurei o Git e minhas chaves SSH conforme as instruções da página Configurar o Git do GitHub .
Também adicionei a chave SSH do github ao meu chaveiro do Mac OS X, conforme mencionado na página de senhas de chave SSH do GitHub . Minha chave pública está registrada no Git.
No entanto, toda vez que tento puxar o Git, tenho que inserir meu nome de usuário e senha. Existe algo além de uma chave SSH que eu preciso configurar para isso?
netrc
'. Veja um exemplo completo aqui .Respostas:
Eu acho que você pode ter o URL do repositório Git errado.
Abra
.git/config
e localize a seção [remote "origin"]. Verifique se você está usando o SSH:Você pode ver a URL SSH na página principal do seu repositório se clicar em Clonar ou baixar e escolher ssh .
E NÃO o
https
ougit
um:Agora você pode validar apenas com a chave SSH em vez do nome de usuário e senha.
Se o Git reclamar disso
'origin' has already been added
, abra o.config
arquivo e edite aurl = "..."
peça depois[remote origin]
comourl = ssh://github/username/repo.git
O mesmo vale para outros serviços. Verifique se o endereço se parece com:
protocol://something@url
Por exemplo,
.git/config
para DevOps do Azure:fonte
[remote "origin"]
conjunto de seçõesurl = ssh://[email protected]/username/Repo.git
. Isso funcionou para mim.url = [email protected]:organization/Repo.git
funcionou. 1 por me levar pelo caminho certo! Sucesso!Configurando credential.helper
No OS X (agora macOS), execute isso no Terminal :
Ele permite que o Git use o arquivo Keychain.app para armazenar o nome de usuário e a senha e recuperar a frase secreta para sua chave SSH privada do chaveiro.
Para uso do Windows:
Solução de problemas
Se o assistente de credencial do Git estiver configurado corretamente, o macOS salvará a frase secreta no chaveiro. Às vezes, a conexão entre o SSH e as senhas armazenadas no chaveiro pode ser interrompida. Execute
ssh-add -K
oussh-add ~/.ssh/id_rsa
adicione a chave ao chaveiro novamente.o macOS v10.12 (Sierra) muda para ssh
Para o macOS v10.12 (Sierra), é
ssh-add -K
necessário executar após cada reinicialização. Para evitar isso, crie~/.ssh/config
com este conteúdo.Na
ssh_config
man
página 10.12.2:A Apple adicionou a nota técnica 2449, que explica o que aconteceu.
fonte
.netrc
método file, que coloca sua senha em texto sem formatação.'credential-osxkeychain' is not a git command.
porque não tinha o auxiliar de credencial instalado. Segui as instruções aqui para instalá-lo: help.github.com/articles/set-up-git#password-cachinggit config --global credential.helper osxkeychain
arquivo The config no meu.ssh
diretório que me corrigia.Isso aconteceu comigo quando atualizei para o macOS v10.12 (Sierra). Parece que o agente SSH foi liberado após a atualização.
Simplesmente executando
ssh-add
localizado minha identidade existente. Digitei a senha e foi bom voltar novamente.fonte
Use isto: Substitua github.com pelo nome do host apropriado
fonte
git remote -v
. No entanto, ainda estou sendo solicitada uma senha.git@**
não solicite credenciais e a URL comhttps@**
:). Assim, eu encontrei este documento .Como já foi dito, você pode instalar um auxiliar de cache de senha. Eu só queria postar o link para outras plataformas, e não apenas para o Mac. Estou executando um servidor Linux e isso foi útil: Armazenando em cache sua senha do GitHub no Git
Para Mac:
Janelas:
Linux:
fonte
Procure também quem está pedindo a senha. É o Git ou o seu agente SSH?
No meu caso, toda vez que eu fazia
git pull
isso me perguntava:Enter passphrase for key '/work/username/.ssh/id_rsa':
Então eu assumi que era o Git pedindo uma senha. Por isso, continuei procurando soluções, apenas depois percebi que meu agente SSH havia desligado. Que pode ser corrigido usando
eval $(ssh-agent)
essh-add
como indicado aqui.Também colo abaixo um pequeno trecho que você pode adicionar ao seu
~/.bashrc
arquivo (ou equivalente) para garantir que o seu agente SSH seja iniciado no seu login.De qualquer forma, esse foi um erro muito bobo que cometi, mas publicá-lo aqui, apenas no caso de ajudar alguém a economizar algum tempo latindo na árvore errada, como eu fiz.
fonte
SSH_ENV="$HOME/.ssh/environment"
Nota: Embora isso seja conveniente, o Git armazenará suas credenciais em texto não criptografado em um arquivo local (.git-credentials) no diretório do seu projeto (veja o diretório "home" abaixo). Se você não gostar disso, exclua esse arquivo e mude para a opção de cache.
Se você deseja que o Git continue solicitando credenciais sempre que precisar se conectar ao repositório remoto, você pode executar este comando:
Para armazenar as senhas em .git-credentials no diretório% HOME%, em oposição ao diretório do projeto: use o sinalizador --global
fonte
Guia do Git no Windows e do GitHub usando SSH para empurrar / puxar: Um guia ilustrado do Git no Windows
fonte
No Windows for Git 1.7.9+, execute o seguinte comando no prompt de comando para abrir o arquivo de configuração em um editor de texto:
Em seguida, no arquivo, adicione o seguinte bloco, se não estiver presente, ou edite-o de acordo:
Salve e feche o arquivo. Você precisará fornecer as credenciais apenas uma vez após a alteração acima.
fonte
Use o comando a seguir para aumentar o período de tempo limite para poder digitar novamente a senha por um tempo
Eu o usei no Bitbucket e no GitHub, funciona para ambos. A única coisa que você precisa fazer
3600
é em segundos. Aumente-o na extensão que desejar. Eu mudei para259200
cerca de 30 dias. Dessa forma, redigito minha senha a cada 30 dias ou mais.fonte
Acho que você resolveu o seu problema, mas não vejo a solução aqui que me ajudou, então aqui está.
Digite o terminal:
Isso esvaziará seu
known_hosts
arquivo e você precisará adicionar todos os hosts que você usou e se conectou, mas resolveu o problema.fonte
cat /dev/null > ~/.ssh/known_hosts
fará o mesmo.> ~/.ssh/known_hosts
é ainda mais curto :)Eu sinto que a resposta fornecida por static_rtti é hacky em algum sentido. Não sei se isso estava disponível anteriormente, mas as ferramentas Git agora fornecem armazenamento de credenciais.
Modo de cache
Use o modo "cache" para manter as credenciais na memória por um determinado período de tempo. Nenhuma das senhas é armazenada no disco e é removida do cache após 15 minutos.
Modo Loja
Use o modo "armazenar" para salvar as credenciais em um arquivo de texto sem formatação no disco e elas nunca expiram.
Eu pessoalmente usei o modo de armazenamento . Excluí meu repositório, clonei-o e tive que inserir minhas credenciais uma vez.
Referência: 7.14 Git Tools - Armazenamento de credenciais
fonte
credential.helper cache
não funciona. Deveria sergit config --global credential.helper wincred
.git config --local credential.helper store
. No meu caso, estou com HTTPS, dessa maneira, digito apenas nome de usuário / senha uma vez e depois disso, minhas credenciais são reutilizadas em ~ / .git-credentialsA resposta da orkoden sobre o uso do chaveiro com o Git no seu terminal foi incompleta e gera erros. É isso que você precisa fazer para salvar o nome de usuário e a senha inseridos no terminal do seu chaveiro:
Então entre
Se você já fez a parte com a configuração do Git antes do curl, não há problema; vai dar certo
fonte
Como static_rtti disse acima, altere
para
Eu mesmo mudei o
https
arquivo .git / config parassh
, mas ele ainda não estava funcionando. Então eu vi que você deve mudargithub.com
para[email protected]
. Uma boa maneira de obter o URL correto real é ir para a página do seu projeto e clicar aqui:Altere HTTPS para SSH para obter o URL certo
Em seguida, adicione esse URL ao arquivo de configuração.
fonte
No Windows Subsystem para Linux (WSL), essa foi a única solução que eu encontrei para trabalhar:
eval
`ssh-agent`; ssh-add ~/.ssh/id_rsa
Ocorreu um problema com o agente ssh não sendo registrado corretamente na WSL.
fonte
Se você deseja impedir que o Git sempre solicite as credenciais de login do seu repositório GitHub, isso pode ser feito facilmente.
Usando SSH em vez de HTTPS
Você pode atualizar o controle remoto de origem usando SSH em vez de HTTPS "
Configure o Git para armazenar sua senha e nome de usuário
Veja como você pode fazer o Git armazenar o nome de usuário e a senha:
Em seguida, salve o nome de usuário e a senha para uma sessão:
fonte
Concordo com o "codehugger" e, usando a instrução "orkoden", funcionou para mim - no NetBeans 7.3 - quando você clica com o botão direito do mouse no arquivo e seleciona o menu de contexto - push - uma janela 'push to remote' é aberta - existem duas opções aqui:
origin:https://github.com/myaccount/myproject.git/
https://github.com/myaccount/myproject.git/
Como você pode ver, a diferença é o parâmetro de origem no URL - você não deseja escolher esta opção (1), mas sim a opção (2), e isso funciona muito bem para mim.
fonte
Etapa 1: verifique sua configuração atual
Você vai ter:
Etapa 2: remover sua origem remota
Etapa 3: adicione a origem remota novamente com seu nome de usuário e senha
fonte
git branch --set-upstream master origin/master
Se o Git solicitar um nome de usuário e senha sempre que você tentar interagir com o GitHub, provavelmente você está usando a URL do clone HTTPS para seu repositório.
O uso de uma URL remota HTTPS tem algumas vantagens: é mais fácil de configurar que o SSH e geralmente funciona através de firewalls e proxies rigorosos. No entanto, também solicita que você insira suas credenciais do GitHub toda vez que você extrai ou envia um repositório.
Você pode configurar o Git para armazenar sua senha para você. Para Windows :
fonte
Ao executar o macOS Cataline 10.15, o método de armazenamento em cache das chaves não estava funcionando para mim. E eu queria usar
https://
nãossh
Aqui está o que funcionou para mim:
Isso também deve funcionar no GitLab
Verifique se o nome de usuário contém um endereço de e-mail para remover a
@email
peça ou você receberá um erro informandoURL using bad/illegal format or missing URL
.Espero que isto ajude!
fonte
Existem diferentes tipos de autenticações, dependendo da sua configuração. Aqui estão alguns:
git credential-osxkeychain
.Se sua credencial for inválida, remova-a:
ou:
Portanto, o Git não solicitará a permissão do chaveiro novamente. Em seguida, configure-o novamente.
Consulte: Atualizando credenciais do OS X Keychain no GitHub
Sua chave SSH RSA.
Para isso, você precisa comparar sua chave SSH com o que adicionou, verifique por
ssh-add -L
/ssh-add -l
se você está usando a identidade certa.Sua autenticação HTTPS (se você estiver usando em
https
vez dessh
protocolo).Use
~/.netrc
(%HOME%/_netrc
no Windows), para fornecer suas credenciais, por exemploSaiba mais: Sincronizando com o GitHub no Stack Overflow.
fonte
Antes de poder usar sua chave com o GitHub, siga esta etapa do tutorial Testando sua conexão SSH :
fonte
Ter um erro de digitação no URL fará com que o Git solicite seu nome de usuário e senha, Git estúpido.
Foi testado no Kali Linux , Git versão 2.7.0,
Tentar:
fonte
Se você estiver usando o Windows e isso de repente começou a acontecer do nada no GitHub, provavelmente é devido ao recente suporte desabilitante do GitHub para algoritmos criptográficos obsoletos em 22/02/2018, caso em que a solução é simplesmente baixar e instalar a versão mais recente do Git completo para Windows ou apenas do Git Credential Manager para Windows .
fonte
Solução Microsoft Stack (Windows e Azure DevOps)
Primeiro abra o
.git/config
arquivo para verificar se o endereço se parece com:Por exemplo, .git / config para Azure DevOps:
Se o problema persistir, abra o Windows Credential Manager , clique na caixa segura chamada Windows Credentials e remova todas as credenciais relacionadas ao git.
Agora, da próxima vez que você fizer login no git, ele não desaparecerá mais.
fonte
Se você tiver um agente SSH configurado, também poderá adicioná-lo ao seu
~/.gitconfig
para forçar o git a usar o SSH para todos os repositórios GitHub em vez de HTTPS:(Se você está trabalhando principalmente com repos públicas, você também pode usar
pushInsteadOf
em vez deinsteadOf
, como a leitura de um repo público pode ser feito sem autenticação).fonte