Acabei de habilitar 2FA (não consigo pensar em nenhuma outra alteração que fiz) e git pediu meu nome de usuário e senha. Eu forneci os dois, mas eles estavam "errados". Tentei muitas das soluções aqui: Git push requer nome de usuário e senha, mas não funcionou. Em particular, ao mudar de https para ssh, a chave ssh fornece
Permissão negada (publickey). fatal: não foi possível ler do repositório remoto.
$ git push
warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:
git config --global push.default matching
To squelch this message and adopt the new behavior now, use:
git config --global push.default simple
See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)
Username for 'https://github.com': **********
Password for 'https://[email protected]':
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/mlbileschi/scala.git/'
Alguma dica?
git
github
two-factor-authentication
Max Bileschi
fonte
fonte
Respostas:
Você precisa gerar um token de acesso. Você pode criar um acessando a página de configurações .
Use este token de acesso como sua senha na linha de comando.
fonte
git pull
. Provavelmente um problema local, mas isso pode ajudar alguém.The requested URL returned error: 403
quando uso o token para senha, para push over httpsUma solução ponta a ponta leva 3 etapas.
Parabéns a Gergo Erdosi. Sua resposta está quase certa, é apenas que o Github muda essa página de configuração. No final de 2016, você precisa gerar um token de acesso em sua página de tokens de acesso pessoais .
Use este token de acesso como sua senha na linha de comando.
Você pode manter seu nome de usuário incluindo-o na url remota do projeto. Uma das maneiras de fazer isso é editar seu
.git/config
para modificar aurl
linha no seguinte formato:url = https://[email protected]/owner/repo.git
Você pode manter sua senha executando isto apenas uma vez:
$ git config credential.helper store
e então suas futuras senhas git serão armazenadas em ~ / .git-credentials, em texto simples, usando o formato
https://user:[email protected]
.Armazenar senha (s) em texto sem formatação normalmente seria considerado um risco de segurança. Mas neste caso 2FA, a credencial NÃO é sua senha real, é uma string gerada aleatoriamente. Portanto, é tão seguro quanto usar
uma chave privada ssh uma chave privada ssh semsenha. CAVEAT: tenha em mente que, se acontecer de você usar outra (s) conta (s) git sem 2FA nesta máquina, essas senhas reais também serão armazenadas em texto simples.PS: Alternativamente, você pode escolher usar login baseado em ssh, usando uma chave privada ssh protegida por senha, que seria mais segura e menos conveniente, mas está fora do escopo desta resposta.
fonte
...the credential is NOT your real password, it is a randomly generated string. So it is as secure as using ssh private key.
- não é verdade . As chaves SSH podem ser facilmente protegidas por uma frase secreta pronta para uso. Simples~./git-credentials
- não está protegido de forma alguma!Eu tive um problema parecido. Tive que alterar o url usado no comando git para incluir meu nome de usuário.
Então, quando ele perguntar por PW, use o token de acesso que você criou seguindo as instruções na resposta de Gergo Erdosi.
fonte
git remote set-url --push origin
com o mesmo valor,git push origin master
ainda falha.git-bash
funcionou bemNo Linux, você pode autenticar sua identidade GitHub usando uma chave SSH.
1) Gerando uma nova chave SSH ( fonte )
Abra o terminal.
Cole o texto abaixo, substituindo em seu endereço de e-mail do GitHub.
Isso cria uma nova chave ssh, usando o e-mail fornecido como um rótulo.
2) Vinculando a chave à sua conta GitHub
Abra o terminal e copie a chave pública gerada
Deve produzir algo como
Navegue até https://github.com/settings/keys e clique em
New SSH Key
, atribua um Título e copie e cole a chave pública.3) Altere a origem do git de
https://
parassh
Abra o terminal,
cd
para o local do seu repositório e digitefonte
https
às vezes é útil, por exemplo, quando mantendo a montante sobrehttps
ao ter seu garfo sobressh
, para que você evite acidentalmente empurrando para montante, uma vez quehttps
irá pedir a senha e lembrar que você alvo o repo erradoIsso funcionou para mim:
Vá para [your-git-repo] /. Git / config
Em
[remote "origin"]
Alterar aURL
chave do protocolo http para git.Exemplo
Se o valor de
url
for https://github.com/ .git, altere-o para[email protected]:<repo-url>.git
fonte
Se você já estiver usando chaves ssh, após habilitar 2FA, será forçado a ler / gravar remotamente com SSH. Você realmente não precisa adicionar tokens pessoais, em vez de continuar usando seu par de chaves SSH existente.
Basta alterar seu url remoto de HTTPS para SSH:
fonte
Isso funcionou para mim depois de habilitar 2FA no Github:
Crie um token de acesso pessoal: https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line .
NOTA: Lembre-se de selecionar as permissões corretas para o token.
Executar:
git clone https://github.com/username/repo.git
Nome de usuário:
your_username
Senha:
your_token
Leitura adicional: https://help.github.com/en/github/using-git/which-remote-url-should-i-use
fonte
Eu estava enfrentando esse problema no repo existente quando habilitei 2FA (autenticação de dois fatores) para um de meus repos privados. Consegui resolvê-lo seguindo as etapas abaixo no meu terminal ubuntu 19.0: -
Assim que a chave for adicionada, vá para o seu terminal e atualize o url de origem
git remote set-url origin [email protected]:<USERNAME>/<BRANCH-NAME>
É isso. Espero que ajude
fonte