Você pode evitar a necessidade de digitar uma senha se executar o agente ssh. Na primeira vez em que você executa um git pull, você o faz de maneira interativa, e o agente ssh lembrará sua chave privada e você poderá executar o git pull sem ser solicitado.
precisa
Respostas:
161
Não é exatamente isso que você solicitou, mas http (s):
você pode colocar a senha no arquivo .netrc (_netrc no Windows). A partir daí, seria captado automaticamente. Iria para a sua pasta pessoal com 600 permissões.
você também pode clonar o repositório com https://user:pass@domain/repo mas isso não é realmente recomendado, pois mostraria seu usuário / passe em muitos lugares ...
uma nova opção é usar o auxiliar de credencial . Observe que as credenciais seriam armazenadas em texto não criptografado na sua configuração local usando o auxiliar de credencial padrão. O auxiliar de credenciais com wincred também pode ser usado no Windows.
Exemplos de uso para auxiliar de credenciais
git config credential.helper store - armazena as credenciais indefinidamente.
git config credential.helper 'cache --timeout=3600'- armazena por 60 minutos
Para acesso baseado em ssh, você usaria o agente ssh que fornecerá a chave ssh quando necessário. Isso exigiria gerar chaves no seu computador, armazenar a chave pública no servidor remoto e adicionar a chave privada ao keystore relevante.
Você pode elaborar sobre a parte SSH? Estou configurando uma instância do EC2 e gostaria que ela fosse retirada sem solicitar minha senha e a escala automática da AWS. Esse esquema público / privado parece uma boa solução.
Pedro Dusso 21/04/2015
1
@PedroDusso soa como esta discussão é o que você está depois
eis
2
Eu terminei usando o mecanismo de implantação de chaves, que parece ser uma boa solução. Obrigado!
Pedro Dusso
129
Encontrei uma maneira de fornecer credenciais para uma conexão https na linha de comando. Você só precisa especificar o URL completo para o git pull e incluir as credenciais:
Você não precisa ter o repositório clonado com as credenciais antes, isso significa que suas credenciais não acabam .git/config. (Mas verifique se o seu shell não o trai e armazena a linha de comando em um arquivo de histórico.)
senha não são necessários, e isso é não segura a senha de gravação desta maneira
meteoro
Essa não é uma das coisas que listei na resposta aceita, já em 2012?
eis
8
@eis: Não exatamente. O ponto é que você não precisa clonar o repositório com a URL que inclui as credenciais, mas ainda pode extrair da URL com credenciais. O efeito é que as credenciais não acabam no arquivo .git / config.
holgero
5
Se você omitir a :passwordpeça, será solicitada a senha após pressionar Enter. Dessa forma, sua senha não será salva no histórico do bash.
Não responde diretamente à pergunta, mas eu a encontrei ao procurar uma maneira de, basicamente, não redigitar a senha toda vez que puxo um servidor remoto .
Bem, gitpermite armazenar em cache suas credenciais por um período finito de tempo. É personalizável git confige esta página explica muito bem:
Abaixo, o cmd funcionará se não tivermos uma senha @ in:
git pull https://username:pass@[email protected]/my/repository
Se você tiver uma senha @ in, substitua-a por% 40, como mostrado abaixo:
git pull https://username:pass%[email protected]/my/repository
Respostas:
Não é exatamente isso que você solicitou, mas http (s):
https://user:pass@domain/repo
mas isso não é realmente recomendado, pois mostraria seu usuário / passe em muitos lugares ...Exemplos de uso para auxiliar de credenciais
git config credential.helper store
- armazena as credenciais indefinidamente.git config credential.helper 'cache --timeout=3600'
- armazena por 60 minutosPara acesso baseado em ssh, você usaria o agente ssh que fornecerá a chave ssh quando necessário. Isso exigiria gerar chaves no seu computador, armazenar a chave pública no servidor remoto e adicionar a chave privada ao keystore relevante.
fonte
Encontrei uma maneira de fornecer credenciais para uma conexão https na linha de comando. Você só precisa especificar o URL completo para o git pull e incluir as credenciais:
Você não precisa ter o repositório clonado com as credenciais antes, isso significa que suas credenciais não acabam
.git/config
. (Mas verifique se o seu shell não o trai e armazena a linha de comando em um arquivo de histórico.)fonte
:password
peça, será solicitada a senha após pressionar Enter. Dessa forma, sua senha não será salva no histórico do bash.Não responde diretamente à pergunta, mas eu a encontrei ao procurar uma maneira de, basicamente, não redigitar a senha toda vez que puxo um servidor remoto .
Bem,
git
permite armazenar em cache suas credenciais por um período finito de tempo. É personalizávelgit config
e esta página explica muito bem:https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux
Em um terminal, execute:
Para personalizar o tempo limite do cache, você pode:
Suas credenciais serão armazenadas na memória pelo período solicitado.
fonte
Observe que a maneira como o assistente de credencial do git "armazena" as senhas não criptografadas muda com o Git 2.5+ (Q2 2014).
Veja commit 17c7f4d por Junio C Hamano (
gitster
)O documento agora diz:
fonte
Abaixo, o cmd funcionará se não tivermos uma senha @ in:
git pull https://username:pass@[email protected]/my/repository
Se você tiver uma senha @ in, substitua-a por% 40, como mostrado abaixo:git pull https://username:pass%[email protected]/my/repository
fonte