Armazenar senha no TortoiseHg

200

Existe uma maneira de configurar o TortoiseHg para armazenar minha senha?

Eu tenho um projeto hospedado no Google Code que eu acesso usando o TortoiseHg. Sempre que eu quiser fazer alterações no Google Code, o TortoiseHg solicita um nome de usuário e uma senha. O Google Code exige que eu use uma senha gerada automaticamente, e é bastante repetitivo procurá-la sempre.

M. Dudley
fonte

Respostas:

70

Aviso de segurança

Embora esta resposta é aceito como de 2017/09/15, é não uma solução recomendada. Você nunca deve armazenar suas senhas em texto simples. Use a mercurial_keyringextensão. Veja outra resposta aqui.


Você pode alterar seu URL push para https: // nome do usuário: [email protected]/repo .

Isso é explicado nas Perguntas frequentes do Google Code e Mercurial .

EDIT: Mercurial FAQ explica outra maneira de fazê-lo:

Com o Mercurial 1.3, você também pode adicionar uma seção de autenticação ao seu arquivo hgrc:
[auth]
example.prefix = https://hg.example.net/
example.username = foo
example.password = bar
Nicolás
fonte
51
Esta é uma resposta ruim! Você nunca deve armazenar senhas de texto sem formatação em QUALQUER arquivo ... !! A outra opção (com mais votos) usando mercurial_keyring é a única coisa certa a fazer!
Lars Corneliussen
6
+1. Considerando que hg pushnão é destrutivo (você sempre pode hg stripalterar conjuntos indesejados), enviar para um repositório remoto dificilmente é uma operação altamente privilegiada. Por esse motivo, o armazenamento de senha em texto sem formatação costuma ser perfeitamente suficiente, desde que você esteja ciente das implicações de segurança.
Søren Løvborg
4
O problema não é que alguém possa corromper irremediavelmente o repositório. Os problemas são: (1) as pessoas reutilizam senhas; assim, quando alguém conseguir acessar esse arquivo de texto, poderá acessar recursos não relacionados; (2) hacks arbitrários podem ser infiltrados no código-fonte ... (3) o código pode ser secreto (nem todo o desenvolvimento é de código aberto), e roubá-lo nem sempre é divertido.
máx
6
@max 1) Talvez seja verdade em teoria, mas o OP afirmou especificamente que ele está usando uma senha gerada automaticamente 2) o controle de versão para isso, você pode ver todas as alterações que foram registradas, como isso pode ser um problema? 3) se alguém tiver acesso a senhas de texto sem formatação armazenadas no seu computador, elas também terão acesso ao seu código. A senha não tem sentido aqui, porque eles podem simplesmente despejar seu código em um dongle.
goldenratio 27/09/12
4
@LarsCorneliussen Esta não é uma resposta ruim. Nem todo caso de uso requer esse nível de segurança. A extensão do chaveiro é uma opção, exatamente como é isso.
Cypher
265

Ambas as respostas existentes sugerem armazenar seu nome de usuário e senha não criptografados em texto sem formatação , o que é meio que não.

Você deve usar a extensão Keyring , pois ela foi projetada especificamente para salvar com segurança senhas de autenticação. Ele já vem com o TortoiseHg , então tudo o que você precisa fazer é ativá-lo, escrevendo o seguinte no seu arquivo mercurial.ini :

[extensions]
mercurial_keyring=

Você também precisará associar seu nome de usuário ao URL de envio editando o arquivo .hg \ hgrc específico do repositório, como no exemplo abaixo:

[paths]
default = https://<your_username>@bitbucket.org/tortoisehg/thg

Para obter mais detalhes sobre como associar seu nome de usuário ao URL, consulte a seção SMTP (Repository Configuration) da página de extensão Keyring .

Vlad Iliescu
fonte
2
Eu apenas tentei esta solução e funcionou muito bem com o Windows 7. Muito bom! Obrigado!
mateuscb
funciona bem para mim - mas eu acho que você também precisa incluir um nome de usuário, ao abrigo de um título [auth], ou modificar o caminho para o repositório como username @ host (conforme o link Chaveiro acima)
Tom Carver
1
Boa resposta, definitivamente o caminho a percorrer.
vobject 4/11/11
Que tal salvar o nome de usuário e a senha se você estiver atrás de um proxy da web?
Seth
3
A maneira correta seria usar a seção auth para configurar o nome de usuário. Você não deve ter informações de autenticação no seu caminho de [auth] \n bitbucket.org.prefix = bitbucket.org \n bitbucket.org.username = schlamar
repositório
150

Três etapas, assista à captura de tela . Nota: Isso armazena sua senha em texto sem formatação.

insira a descrição da imagem aqui

bruha
fonte
37
parece que isso também armazena a senha em texto simples - se você tiver a extensão keyring ativada, o campo de senha se torna deficiente
Vlad Iliescu
5
Funciona apenas se você estiver usando o protocolo https. Ao definir para http, o cadeado desaparece.
Despertar
Respostas legadas aceitas são péssimas, isso deve ter uma aparência verde!
William T. Mallard
12

Se você deseja configurá-lo via TortoiseHg, a caixa de diálogo Configuração de repositório estará disponível. Depois de abrir a caixa de diálogo, mude para a guia 'Sincronizar'. Você pode adicionar um caminho com informações de autenticação HTTPS.

http://tortoisehg.bitbucket.io/manual/2.9/settings.html#module-web.settings

kuy
fonte
2

Simplesmente modifique o hgrcarquivo no .hgdiretório do seu repositório local para que fique assim:

[paths]
default = https://name:[email protected]/hg/

onde name é seu login no Google Code sem o bit gmail / googlemail, por exemplo, 'fredb' (não [email protected]), password é a senha gerada pelo Google e yourproj é o nome do seu projeto de GC. Então, algo como:

default = https://fred:[email protected]/hg/

fonte
11
Nunca armazene senhas em texto sem formatação. NUNCA! Use mercurial_keyring - o TortoiseHG solicita a senha apenas uma vez.
Lars Corneliussen
1
Nunca diga nunca :) Sim, a chave SSH é preferível a Keyring, Keyring é preferível a texto simples, mas na verdade existem situações diferentes. O PS aprovou a resposta do "chaveiro" e esta.
Alex Shesterov
0

Isso funciona para mim usando SSH. Eu sei que a senha está em texto sem formatação, mas isso não é um problema neste projeto. Você precisa alterar myUser e MyOPas para obter suas credenciais e o caminho para: TortoisePlink.exe. Edite o mercurial.ini

[reviewboard]
password = myPass
[ui]
username = myUser
ssh = "C:\Program Files\TortoiseHg\lib\TortoisePlink.exe" -l myUser -pw  myPass
Marcel Fernandez
fonte
0

Se você deseja armazenar a senha no mercurial.ini e ela não funcionar mais após a atualização para o TortoiseHg 4.9 ou superior, uma solução possível é adicionar a porta ao prefixo:

[auth]
tax.prefix = http://server:8080
tax.username = cerveser
tax.password = mypassword
Cerveser
fonte