Eu quero usar um push e pull automaticamente no GitExtension , sem inserir meu usuário e senha em um prompt, todas as vezes.
Então, como posso salvar minhas credenciais no git?
git
credentials
git-config
Edson Cezar
fonte
fonte
Respostas:
Corre
então
forneça um nome de usuário e senha e esses detalhes serão lembrados mais tarde. As credenciais são armazenadas em um arquivo no disco, com as permissões de disco "apenas legíveis / graváveis pelo usuário", mas ainda em texto sem formatação.
Se você quiser alterar a senha mais tarde
Falhará, porque a senha está incorreta, o git remove o usuário + senha ofensivo do
~/.git-credentials
arquivo, agora execute novamentepara fornecer uma nova senha para que funcione como antes.
fonte
Você pode usar o
git config
para habilitar o armazenamento de credenciais no git.Ao executar esse comando, na primeira vez em que você extrai ou envia do repositório remoto, você será perguntado sobre o nome de usuário e a senha.
Posteriormente, para comunicações subsequentes com o repositório remoto, você não precisará fornecer o nome de usuário e a senha.
O formato de armazenamento é um
.git-credentials
arquivo armazenado em texto sem formatação.Além disso, você pode usar outros auxiliares para o
git config credential.helper
cache de memória, a saber:que leva um opcional
timeout parameter
, determinando por quanto tempo as credenciais serão mantidas na memória. Usando o auxiliar, as credenciais nunca tocarão no disco e serão apagadas após o tempo limite especificado. Odefault
valor é900 seconds (15 minutes).
AVISO : Se você usar esse método, as senhas da sua conta git serão salvas no
plaintext
formato, noglobal .gitconfig file
, por exemplo, no linux, será/home/[username]/.gitconfig
Se isso for indesejável para você, use um
ssh key
para suas contas.fonte
git config credential.helper cache
as senhas não serão salvas em um arquivo, apenas armazenadas na memória. Veja: git-scm.com/docs/git-credential-cacheMétodo recomendado e seguro: SSH
Crie uma chave ssh Github. Vá para github.com -> Configurações -> Chaves SSH e GPG -> Nova chave SSH. Agora salve sua chave privada no seu computador.
Então, se a chave privada é salva como id_rsa no diretório ~ / .ssh / , nós a adicionamos para autenticação, da seguinte forma:
Um método mais seguro: armazenamento em cache
Podemos usar git-credential-store para armazenar em cache nosso nome de usuário e senha por um período de tempo. Basta digitar o seguinte na sua CLI (terminal ou prompt de comando):
Você também pode definir o período de tempo limite (em segundos) da seguinte maneira:
Um método ainda menos seguro
O Git-credential-store também pode ser usado, mas salva as senhas no arquivo de texto sem formatação no seu disco, como tal:
Resposta desatualizada - rápida e insegura
Isto é um método inseguro de armazenar sua senha em texto sem formatação. Se alguém ganhar o controle do seu computador, sua senha será exposta!
Você pode definir seu nome de usuário e senha assim:
fonte
Ligue o auxiliar de credenciais para que o Git salve sua senha na memória por algum tempo:
No Terminal, digite o seguinte:
Por padrão, o Git armazenará sua senha em cache por 15 minutos.
Para alterar o tempo limite padrão do cache de senha, digite o seguinte:
Da Ajuda do GitHub
fonte
cache
peça porstore
. Assim, o comando completo será:git config --global credential.helper store
. Observe que isso armazenará sua senha em um arquivo de texto aberto (sem criptografia, por assim dizer).--timeout
parâmetro?Você pode editar o
~/.gitconfig
arquivo para armazenar suas credenciaisQue já deveria ter
Você deve adicionar na parte inferior deste arquivo.
O motivo pelo qual recomendo esta opção é porque ela é global e, a qualquer momento, você precisa remover a opção e sabe para onde ir e alterá-la.
USE SOMENTE ESTA OPÇÃO NO SEU COMPUTADOR PESSOAL.
Então quando você puxa | clone | digite sua senha git, em geral, a senha será salva no
~/.git-credentials
formatoONDE DOMAIN.XXX PODERIA SER GITHUB.COM | BITBUCKET.ORG DE OUTROS
Ver documentos
Reinicie seu terminal.
fonte
Basta colocar suas credenciais no URL assim:
Você pode armazená- lo assim:
... exemplo para usá- lo:
Agora, é necessário listar os aliases de URL:
git remote -v
... e que o comando para excluir um deles:
git remote rm myrepo
fonte
[email protected]:Username/myRepo.git
https
, nãossh
, então uma solução como essa pode ser útil lá. Observe também que você pode usar um token oauth, que é marginalmente mais seguro que sua senha do GitHub.Para configuração global, abra o terminal (de qualquer lugar) execute o seguinte:
Por isso, qualquer repositório Git local que você tenha em sua máquina usará essas informações.
Você pode configurar individualmente para cada repositório fazendo:
execute o seguinte:
Afeta apenas essa pasta (porque sua configuração é local).
fonte
--local
tag mas novamente nada aconteceVocê pode usar o git-credential-store para armazenar suas senhas não criptografadas no disco, protegidas apenas pelas permissões do sistema de arquivos.
Exemplo
Você pode verificar as credenciais armazenadas no arquivo
~/.git-credentials
Para mais informações, visite git-credential-store - Auxiliar para armazenar credenciais em disco
fonte
Você estará mais seguro se usar a autenticação SSH do que a autenticação de nome de usuário / senha.
Se você estiver usando um Mac, a autenticação do cliente SSH será integrada ao chaveiro do MacOS. Depois de criar uma chave SSH, digite no seu terminal:
Isso adicionará a chave privada SSH ao chaveiro do MacOS. O cliente git usará ssh quando se conectar ao servidor remoto. Contanto que você tenha registrado sua chave pública ssh no servidor, você ficará bem.
fonte
SSH
. Usando a autenticação HTTP, alguém que roubar as credenciais teria acesso apenasGitHub/GitLab
. Os tokens também são projetados para ter uma vida útil limitada.Depois de revisar dezenas de posts, blogs, etc., experimentei todos os métodos, e foi isso que eu criei. Abrange tudo.
Folha de truques sobre as credenciais e os pacotes privados do DevOps Git do Vanilla
Essas são todas as formas e ferramentas pelas quais você pode autenticar com segurança o git para clonar um repositório sem um prompt de senha interativo .
A bala de prata
Quer o Just Works ™? Esta é a bala mágica de prata.
Obtenha seu token de acesso (consulte a seção na tabela de dicas, se você precisar das instruções do Github ou Gitea para isso) e defina-o em uma variável de ambiente (tanto para desenvolvimento local quanto para implantação):
Para o Github, copie e execute estas linhas literalmente :
Parabéns, agora qualquer repositório automatizado de clonagem de ferramentas git não será obstruído por um prompt de senha, seja usando https ou qualquer estilo de ssh url.
Não está usando o Github?
Para outras plataformas (Gitea, Github, Bitbucket), basta alterar o URL. Não altere os nomes de usuário (embora arbitrários, eles são necessários para entradas de configuração distintas).
Compatibilidade
Funciona localmente no MacOS, Linux, Windows (no Bash), Docker, CircleCI, Heroku, Akkeris, etc.
Mais informações
Veja a seção ".gitconfig em vez de" da cheatsheet.
Segurança
Veja a seção "Segurança" do cheatsheet.
fonte
git config --global credential."https://somegithost.com".username MyUserName
, que está na sua planilha de dicas, mas não em nenhum outro lugar do tópico de resposta. Essa solução em particular não responde à pergunta do OP, mas respondeu à minha, então obrigado!Nesse caso, você precisa do ajudante de credenciais do git para informar ao git para lembrar sua senha e nome de usuário do GitHub usando a seguinte linha de comando:
e se você estiver usando o repo usando a chave SSH, precisará da chave SSH para autenticar.
fonte
Nenhuma das respostas acima funcionou para mim. Eu continuava recebendo o seguinte toda vez que queria
fetch
oupull
:Enter passphrase for key '/Users/myusername/.ssh/id_rsa':
Para Macs
Consegui impedi-lo de perguntar minha senha:
vi ~/.ssh/config
UseKeychain yes
:wq!
Para Windows
Consegui fazê-lo funcionar usando as informações nesta stackexchange: https://unix.stackexchange.com/a/12201/348665
fonte
Além de editar o
~/.gitconfig
arquivo, você pode fazer isso se perguntar:ou
Nota para sempre usar aspas simples :
ou
Seu nome de usuário e senha podem usar alguns caracteres que quebrariam sua senha se você usar aspas duplas.
--local
ou--global
significa que os parâmetros de configuração são salvos para o projeto ou para o usuário do sistema operacional.fonte
Apenas use
e faça o git pull , ele pedirá nome de usuário e senha; a partir de agora não fornecerá nenhum prompt para nome de usuário e senha; ele armazenará os detalhes
fonte
Armazenar nome de usuário e senha em .git-credentials
.git-credentials
é onde seu nome de usuário e senha (token de acesso) são armazenados quando você executagit config --global credential.helper store
, o que outras respostas sugerem e, em seguida, digite seu nome de usuário e senha ou token de acesso:Portanto, para salvar o nome de usuário e a senha (token de acesso):
Isso é muito útil para o robô github, por exemplo, para resolver builds automatizados em cadeia no mesmo repositório de docker , tendo regras para ramificação diferente e, em seguida, acioná-lo pressionando-o
post_push
prostituta no hub da janela de encaixe.Um exemplo disso pode ser visto aqui no stackoverflow.
fonte
Uma maneira rápida de armazenar em cache credenciais git:
agradável e seguro
o tempo limite é em segundos.
fonte
Depois de ler o tópico na íntegra e experimentar a maioria das respostas a essa pergunta, finalmente encontrei o procedimento que funciona para mim. Quero compartilhá-lo caso alguém tenha que lidar com um caso de uso complexo, mas ainda não queira passar pelo thread completo e pelas páginas de manual gitcredentials , gitcredentials-store etc., como eu fiz.
Veja abaixo o procedimento sugiro SE você (como eu) tem que lidar com vários repositórios de vários fornecedores (gitlab, GitHub, bitbucket, etc.), utilizando várias combinações de usuário / senha diferentes. Se você em vez disso ter apenas uma única conta para trabalhar, então você pode ser melhor empregar os
git config --global credential.helper store
ougit config --global user.name "your username"
etc. soluções que têm sido muito bem explicado nas respostas anteriores.Minha solução:
> git config --global --unset credentials.helper
> cd /path/to/my/repo
> git config --unset credential.helper
> git config credential.helper 'store --file ~/.git_repo_credentials'
Nota : este comando cria um novo arquivo chamado ".git_repo_credentials" em seu diretório pessoal, no qual o Git armazena suas credenciais. Se você não especificar um nome de arquivo, o Git usará o padrão ".git_credentials". Nesse caso, basta emitir o seguinte comando:
> git config credential.helper store
git config credential.*.username my_user_name
Nota : o uso de "*" geralmente é bom se seus repositórios forem do mesmo provedor (por exemplo, GitLab). Se, em vez disso, seus repositórios são hospedados por provedores diferentes, sugiro definir explicitamente o link para o provedor para cada repositório, como no exemplo a seguir (para GitLab):
git config credential.https://gitlab.com.username my_user_name
Neste ponto, se você emitir um comando exigindo suas credenciais (por exemplo
git pull
), será solicitada a senha correspondente a "my_user_name". Isso é necessário apenas uma vez porque o git armazena as credenciais em ".git_repo_credentials" e usa automaticamente os mesmos dados nos acessos subseqüentes.fonte
No comentário de rifrol, no Linux Ubuntu, a partir desta resposta , veja como no Ubuntu:
Algumas outras distribuições fornecem o binário para que você não precise construí-lo.
No OS X, normalmente ele é "construído" com um módulo padrão de "osxkeychain", para que você o obtenha gratuitamente.
fonte
Verifique a documentação oficial do git:
https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage
fonte