É possível usar um arquivo .netrc no Windows quando estou usando o Git para clonar um repositório remoto com HTTP e senha de usuário?
É possível usar um arquivo .netrc no Windows quando estou usando o Git para clonar um repositório remoto com HTTP e senha de usuário?
Respostas:
É possível usar um
.netrc
arquivo no Windows?
Sim, você deve:
%HOME%
(pré-Git 2.0, não é mais necessário com o Git 2.0+)_netrc
arquivo%HOME%
Se você estiver usando o Windows 7/10, em uma CMD
sessão, digite:
setx HOME %USERPROFILE%
e o %HOME%
será definido como ' C:\Users\"username"
'.
Vá para essa pasta ( cd %HOME%
) e crie um arquivo chamado ' _netrc
'
Nota: Novamente, no Windows, você precisa de um _netrc
arquivo ' ', não de um .netrc
arquivo ' '.
Seu conteúdo é bastante padrão (substitua <examples>
por seus valores):
machine <hostname1>
login <login1>
password <password1>
machine <hostname2>
login <login2>
password <password2>
Lucas menciona nos comentários:
Usando a versão mais recente do msysgit no Windows 7, não precisei definir a
HOME
variável de ambiente. O_netrc
arquivo só fez o truque.
Isso é realmente o que eu mencionei em " Tentando" install
"o github, .ssh
dir not there ":
git-cmd.bat
incluído no msysgit define a %HOME%
variável de ambiente:
@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%
爱国者 acredita nos comentários que "parece que não funcionará para o protocolo http"
No entanto, eu respondi que netrc
é usado por curl
e funciona para o protocolo HTTP, como mostrado neste exemplo (procure por ' netrc
' na página):. Também usado com o protocolo HTTP aqui: " _netrc
/ .netrc
alternativa paracURL
".
Uma armadilha comum com netrc
suporte no Windows é que o git ignorará o uso se uma URL https de origem especificar um nome de usuário.
Por exemplo, se o seu .git/config
arquivo contiver:
[origem remota] buscar = + refs / heads / *: refs / remotes / origin / * url = https: //bob@code.google.com/p/my-project/
O Git não resolverá suas credenciais via _netrc
, para corrigir isso remova seu nome de usuário, da seguinte maneira:
[origem remota] buscar = + refs / heads / *: refs / remotes / origin / * url = https://code.google.com/p/my-project/
Solução alternativa: Com a versão 1.7.9+ do git (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 sem formatação, 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 (pol
contrib/
) para interagir com os.netrc/.authinfo
arquivos foi adicionado.
Esse script permite que você use arquivos netrc criptografados com gpg , evitando o problema de ter suas credenciais armazenadas em um arquivo de texto sem formatação.
Os arquivos com a
.gpg
extensão serão descriptografados pelo GPG antes da análise.
Vários-f
argumentos estão OK. Eles são processados em ordem e a primeira entrada correspondente encontrada é retornada pelo protocolo auxiliar de credenciais.Quando nenhuma
-f
opção for dada,.authinfo.gpg
,.netrc.gpg
,.authinfo
, e.netrc
arquivos em seu diretório home são usados nesta ordem.
Para habilitar esse auxiliar de credencial:
git config credential.helper '$shortname -f AUTHFILE1 -f AUTHFILE2'
(Observe que o Git
git-credential-
acrescentará " " o nome do ajudante e o procurará 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 ignorar a digitação de senha ao usarhttps:// github
"
Com o Git 2.18+ (junho de 2018), agora você pode personalizar o programa GPG usado para descriptografar o .netrc
arquivo criptografado .
Veja commit 786ef50 , commit f07eeed (12 de maio de 2018) por Luis Marsano (``) .
(Mesclado por Junio C Hamano - gitster
- na confirmação 017b7c5 , 30 de maio de 2018)
git-credential-netrc
:gpg
opção de aceitação
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 outra coisa, como 'gpg2
'
http.proxy
em suas variáveis de ambiente. Ou, pelo contrário, adicione seu servidor a uma no_proxy
variável, para evitar tentar acessar um servidor LAN pela WAN.
msysgit
Windows 7, não precisei definir a HOME
variável de ambiente. O _netrc
arquivo só fez o truque.
Você também pode instalar o Git Credential Manager para Windows para salvar senhas do Git no gerenciador de credenciais do Windows em vez de _netrc
. Essa é uma maneira mais segura de armazenar senhas.
.netrc
arquivo criptografado . Você não precisará inserir essas credenciais nem uma vez durante a sessão.
Isso permitirá que o Git se autentique no HTTPS usando .netrc
:
_netrc
e localizado em c:\Users\<username>
.HOME=%USERPROFILE%
(definir variáveis de ambiente em todo o sistema usando a opção Sistema no painel de controle. Dependendo da versão do Windows, pode ser necessário selecionar "Opções avançadas".)._netrc
arquivo não pode conter espaços (citar a senha não funcionará).Estou publicando uma maneira de usar _netrc
para baixar materiais do site www.course.com.
Se alguém usar o coursera-dl para baixar os materiais de classe aberta em www.coursera.com e no sistema operacional Windows alguém quiser usar um arquivo como ".netrc" que esteja no sistema operacional Unix para adicionar o opção em -n
vez de -U <username> -P <password>
por conveniência. Ele / ela pode fazer assim:
Verifique o caminho inicial no sistema operacional Windows: setx HOME %USERPROFILE%
(consulte a resposta do VonC ). Ele salvará a HOME
variável de ambiente como C:\Users\"username"
.
Localize no diretório C:\Users\"username"
e crie um nome de arquivo _netrc
. NOTA: NÃO existe nenhum sufixo.
o conteúdo é como:machine coursera-dl login <user> password <pass>
Use um comando como coursera-dl -n --path PATH <course name>
para baixar os materiais da classe. Mais detalhes sobre as opções do coursera-dl para esta página .
HOME
variável de ambiente é importante, porque não é definida por padrão no Windows. Você pode definir essa variável para o diretório que desejar (não precisa serC:\users\mylogin
): por exemplo, no trabalho, defino-a no meu disco remoto privado associado à minha conta do Windows, o que me permite alternar as áreas de trabalho sem perder. minhas.ssh
ou_netrc
configurações.