Git – Como usar o arquivo .netrc no Windows para salvar usuário e senha

É possível usar um arquivo .netrc no Windows quando estou usando o Git para clonar um repository remoto com HTTP e user-password?

É possível usar um arquivo .netrc no Windows?

Sim, você deve:

  • define a variável de ambiente %HOME% (pré-Git 2.0, não mais necessária com o Git 2.0+)
  • coloque um arquivo _netrc em %HOME%

Se você estiver usando o Windows 7/10, em uma session CMD , digite:

 setx HOME %USERPROFILE% 

e %HOME% será definido como ‘ C:\Users\"username" ‘.
Vá nessa pasta ( cd %HOME% ) e faça um arquivo chamado ‘ _netrc

Nota: Novamente, para o Windows, você precisa de um arquivo ‘ _netrc ‘, não um arquivo ‘ .netrc ‘.

Seu conteúdo é bastante normal (Substitua os pelos seus valores):

 machine  login  password  machine  login  password  

Lucas menciona nos comentários:

Usando a versão mais recente do msysgit no Windows 7, não precisei definir a variável de ambiente HOME . O arquivo _netrc sozinho fez o truque.

Isto é de fato o que eu mencionei em ” Tentando” install github, o diretório .ssh não está lá “:
git-cmd.bat incluído no msysgit define a variável de ambiente %HOME% :

 @if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH% @if not exist "%HOME%" @set HOME=%USERPROFILE% 

爱国者 acredita nos comentários que “parece que não vai funcionar para protocolo http”

No entanto, respondi que o netrc é usado pelo curl , e funciona para o protocolo HTTP, conforme mostrado neste exemplo (procure por ‘ netrc ‘ na página):. Também usado com o protocolo HTTP aqui: ” _netrc / .netrc alternative to cURL “.


Uma armadilha comum com o suporte netrc no Windows é que o git irá contorná-lo se uma URL https de origem especificar um nome de usuário.

Por exemplo, se o seu arquivo .git/config contiver:

 ["origem" remota]
      buscar = + refs / heads / *: refs / remotes / origin / *
      url = https: //bob@code.google.com/p/my-project/

O Git não irá resolver suas credenciais via _netrc , para corrigir isso remova seu nome de usuário, assim:

 ["origem" remota]
      buscar = + refs / heads / *: refs / remotes / origin / *
      url = https://code.google.com/p/my-project/

Solução alternativa: Com git versão 1.7.9+ (janeiro de 2012): Esta resposta de Mark Longair detalha o mecanismo de cache de credenciais que também permite que você não armazene sua senha em texto simples, como mostrado abaixo.


Com o Git 1.8.3 (abril de 2013):

Agora você pode usar um .netrc criptografado (com gpg ).
No Windows: %HOME%/_netrc ( _ , não ‘ . ‘)

Um novo auxiliar de credencial somente leitura (em contrib/ ) para interagir com os arquivos .netrc/.authinfo foi adicionado.

Esse script permitiria que você usasse arquivos netrc criptografados por gpg , evitando o problema de ter suas credenciais armazenadas em um arquivo de texto simples.

Os arquivos com a extensão .gpg serão descriptografados pelo GPG antes da análise.
Vários argumentos -f estão OK. Eles são processados ​​em ordem e a primeira input correspondente encontrada é retornada por meio do protocolo auxiliar de credencial.

Quando nenhuma opção -f é dada, os .authinfo.gpg , .netrc.gpg , .authinfo e .netrc no seu diretório pessoal são usados ​​nesta ordem.

Para ativar este auxiliar de credencial:

 git config credential.helper '$shortname -f AUTHFILE1 -f AUTHFILE2' 

(Observe que o Git irá prefixar ” git-credential- ” ao nome do auxiliar e procurar por ele no caminho.)

 # and if you want lots of debugging info: git config credential.helper '$shortname -f AUTHFILE -d' #or to see the files opened and data found: git config credential.helper '$shortname -f AUTHFILE -v' 

Veja um exemplo completo em ” Existe uma maneira de pular a digitação de senha ao usar https:// github


Com o Git 2.18+ (junho de 2018), você agora pode personalizar o programa GPG usado para descriptografar o arquivo .netrc criptografado.

Veja commit 786ef50 , commit f07eeed (12 mai 2018) por Luis Marsano (“) .
(Mesclado por Junio ​​C Hamano – gitster – em commit 017b7c5 , 30 de maio de 2018)

git-credential-netrc : aceita a opção gpg

git-credential-netrc foi codificado para descriptografar com ‘ gpg ‘, independentemente da opção gpg.program.
Este é um problema em distribuições como o Debian que chamam o GnuPG moderno de alguma outra coisa, como ‘ gpg2

Você também pode instalar o Git Credential Manager para Windows para salvar as senhas do Git no gerenciador de credenciais do Windows em vez de _netrc . Essa é uma maneira mais segura de armazenar senhas.

Isso permitirá que o git autentique em https usando .netrc

  • O arquivo deve ser nomeado _netrc e localizado em c:\Users\
  • Você precisará definir uma variável de ambiente chamada HOME=%USERPROFILE% (Definir variables ​​de ambiente de todo o sistema usando a opção Sistema no painel de controle. Dependendo da versão do Windows, talvez seja necessário selecionar “Opções avançadas”)
  • A senha armazenada no arquivo _netrc não pode conter espaços (a citação da senha não funcionará)

Publicar uma maneira de usar _netrc para baixar materiais do site http://www.course.com.I espero que algumas ajudas para você.

Se alguém vai usar o coursera-dl para baixar os materiais de class aberta em http://www.coursera.com. E no WINDOWS OS alguém quer usar um arquivo como “.netrc” que está no sistema operacional do tipo-Unix para adicionar a opção -n ao invés de -U -P para conveniência. Ele pode fazer assim:

  1. verifique o caminho inicial no sistema operacional Windows: setx HOME %USERPROFILE% ( consulte a resposta do VonC ) 。it irá salvar o HOME como C:\Users\"username" .

  2. localize no diretório C:\Users\"username" e crie um nome de arquivo _netrc . NOTA: NÃO há nenhum sufixo. o conteúdo é como: machine coursera-dl login password

  3. use o comando como coursera-dl -n --path PATH para baixar os materiais da class. mais detalhes da opção coursera-dl para esta página .

O _netrc deve ser criado no Windows, não no .netrc. Pode ser armazenado em “C: \ users \” username “.

Dê uma olhada em http://nick.txtcc.com/index.php/other/983 que lhe dará um detalhe completo.