Eu queria saber se existe uma maneira de salvar minha senha do Subversion ao fazer svn
operações no console. O console é a única opção que tenho. Quando tento realizar qualquer ação do Subversion, por exemplo svn commit
, ele sempre solicita a senha da conta. Existe uma maneira de salvar essa senha de alguma forma para que eu não tenha que digitá-la novamente?
106
Respostas:
Em
~/.subversion/config
, você provavelmente temstore-passwords = no
. Mude parayes
(ou apenas comente porque o padrão é sim), e da próxima vez que você fornecer sua senha ao Subversion, ele deverá salvá-la.Você pode querer garantir que o proprietário e as permissões de
~/.subversion/config
estão corretos (sem acesso público ou de grupo; 600).fonte
Red Hat Linux 2.6.18
. alguma ideia de onde poderia estar?/etc/subversion/config
sistema de arquivos funcione conforme o esperado. Obrigadostore-passwords
opção emconfig
agora está obsoleta, de acordo com alguns comentários padrão que encontrei em meuconfig
arquivo; ela foi substituída pela mesma opção emservers
.)Depende do protocolo que você está usando. Se você estiver usando SVN + SSH, o cliente SVN não pode salvar sua senha porque nunca a toca - o cliente SSH solicita a senha diretamente. Nesse caso, você pode usar uma chave SSH e um agente ssh para evitar os prompts constantes. Se você estiver usando o protocolo svnserve ou HTTP (S), então o cliente SSH está controlando sua senha e pode salvá-la.
fonte
.ssh/config
e anexar a chave pública ao servidor SVN.Tente limpar sua
.subversion
pasta em seu diretório pessoal e tente confirmar novamente. Ele deve solicitar sua senha e, em seguida, perguntar se deseja salvá-la.fonte
Eu tive que editar
~/.subversion/servers
. Eu definistore-plaintext-passwords = yes
(não havia anteriormente). Isso funcionou. Pode ser considerado inseguro.fonte
store-passwords = yes
. Acredito que foi definido antes, mas não foi definido quando atualizei para o SVN 1.7Observe o seguinte parágrafo do
~/.subversion/servers
arquivo:É pelo menos para o SVN versão 1.6.12. Portanto, lembre-se de editar o arquivo de servidores também durante a substituição
~/.subversion/config
.fonte
Se você usar svn + ssh , poderá copiar sua chave ssh pública para a máquina remota:
fonte
Para mim (usuário de Mac), o problema era que o keychain já tinha uma entrada armazenada para minhas credenciais, mas os direitos de acesso não estavam corretos.
Excluir a entrada no aplicativo de chaveiro e, em seguida, recriá-la usando svn corrigiu o problema.
fonte
Nenhuma dessas respostas maravilhosas funcionou para mim em uma nova instalação do Ubuntu. Em vez disso, uma pista dessa resposta funcionou para mim.
Tive que permitir o armazenamento de senha "simples" definindo este vazio em
~/.subversion/config
:Não havia configuração existente, portanto, estar vazio é significativo.
Isso foi além de:
no
~/.subversion/servers
.fonte
Usar texto simples pode não ser a melhor escolha, se a senha for usada para outra coisa.
Apoio a resposta aceita, mas não funcionou para mim - por um motivo muito específico: eu queria usar armazenamento de senhas
kwallet
ougnome-keyring
. Tentei alterar as configurações nos quatro arquivos:Mesmo depois de tudo ter sido configurado da mesma forma, com um
password-stores
nome do KWallet (o padrão pode estar errado, certo?) Ele não funcionou e continuou pedindo a senha para sempre. Os arquivos em~/.subversion
tinham permissões 600.Bem, nesse ponto, você pode tentar verificar uma coisa simples:
Se você pegar:
então você pode suspeitar com grande probabilidade de que esse cliente foi criado a partir da fonte, localmente, pelo seu administrador (que pode ser você mesmo, como no meu caso).
O Subversion é uma besta desagradável de compilar , muito fácil de construir acidentalmente sem suporte HTTP, ou - como no meu exemplo - sem suporte para armazenamento de senhas criptografadas (você precisa de arquivos de desenvolvimento Gnome ou KDE, e muitos deles!). Mas o
./configure
script não dirá isso e você apenas obterá umsvn
comando menos funcional .Nesse caso, você pode voltar ao cliente que veio com sua distribuição, geralmente em
/usr/bin/svn
. A desvantagem é - você provavelmente precisará verificar novamente as cópias de trabalho, pois não hásvn downgrade
comando. Você pode consultar Linus Torvalds sobre o que pensar sobre o Subversion, de qualquer maneira;)fonte
Para adicionar à resposta de Heath: Parece que o Subversion 1.6 desabilitou o armazenamento de senhas por padrão se não puder armazená-las na forma criptografada. Você pode permitir o armazenamento de senhas não criptografadas definindo explicitamente
password-stores =
(ou seja, com o valor vazio) em~/.subversion/config
.Para verificar qual armazenamento de senhas o Subversion usa, dê uma olhada em
~/.subversion/auth/svn.simple
. Ele contém vários arquivos, cada um deles uma tabela hash com uma codificação simples de chave / valor. Osvn:realmstring
em cada arquivo identifica a qual domínio esse arquivo se destina. Se o arquivo tiverem seguida, ele armazena a senha em texto simples em algum lugar desse arquivo, em uma
K 8 password
entrada. Caso contrário, ele tenta usar um dos configuradospassword-stores
.fonte
Todos os métodos mencionados aqui não estão funcionando para mim. Eu construí o Subversion a partir da fonte e descobri que devo executar o configure com
--enable-plaintext-password-storage
para suportar este recurso.fonte
Apenas para enfatizar o que Tomasz Gandor e Domain disseram sobre ter a versão correta do svn e que ela foi compilada para permitir o armazenamento de senhas em texto simples, você precisa verificar o que tem:
Versus:
Depois de ver que sua versão do svn foi habilitada para armazenamento de senha em texto simples, aplique todo o resto das respostas aqui.
fonte
Estou usando o cliente TortoiseSVN no Windows e, para mim, definir o parâmetro store-passwords como yes em
%USERPROFILE%\AppData\Roaming\Subversion\config
não ajuda a armazenar a senha.A senha foi salva com sucesso após a remoção desta pasta (apenas no caso de renomear):
Meio Ambiente:
fonte
Infelizmente, as respostas não resolveram o problema de pedir uma senha para ssh + svn com uma chave privada protegida. Depois de algumas pesquisas, descobri:
utilitário se você tiver um computador Linux. Certifique-se de ter suas chaves armazenadas
/home/username/.ssh/
e digite este comando no Terminal.fonte