No meu caso, quero fazer um check-out de SVN:
svn co svn+ssh://10.106.191.164/home/svn/shproject
No entanto, quero ter a senha nessa linha, para que ela não apareça.
linux
ssh
svn
authentication
Alex
fonte
fonte
Respostas:
fonte
sshpass
(o que funciona para mim).Como você está usando SSH, a maneira preferida é usar uma chave pública para autorização, o que evita completamente a necessidade de uma senha.
Um guia para criar e instalar as chaves pode ser encontrado aqui .
fonte
Infinitamente melhor é gerar um par de chaves. Como seu usuário local:
$ ssh-keygen -t rsa
(aceite todos os padrões)
Em seguida, pegue o conteúdo de .ssh / id_rsa.pub e adicione-o no servidor remoto a .ssh / allowed_keys Certifique-se de que tudo esteja colado na mesma linha. Também verifique se as permissões do diretório .ssh são 600.
Então você deve poder fazer o ssh sem ser solicitada uma senha.
fonte
Em vez de usar uma senha, convém dar uma olhada em um par de chaves pública / privada e usar o ssh. A maioria das distribuições Linux vem com comandos fáceis de usar para criar esse par. no entanto, isso exigiria acesso ao servidor (uma vez) para depositar o arquivo de chave pública no arquivo ~ / .ssh / allowed_keys do usuário.
fonte
Bem, eu não quiser digitar uma senha - Eu não gosto de depender da minha password ser salvo em algum lugar; no entanto, quero inseri-lo uma vez por conjunto de comandos svn + ssh; e muitas vezes, você só quer fazer uma
svn checkout
- e precisa digitar toneladas de senhas de qualquer maneira. Nesse caso, eu gostaria de digitar uma senha apenas uma vez.Portanto, apenas as respostas de @Boinst e @Marius foram relevantes para o meu caso de uso; infelizmente, eles não ajudaram, pois eu não consegui fazê-los funcionar. Gostaria de saber se os autores do post tentaram os comandos antes de publicá-los, como agora não consigo imaginar como eles poderiam funcionar - aqui está um teste que fiz localmente no meu PC Ubuntu 10.04 (e quebro o Ctrl-C, cada vez que vejo o solicitação de senha):
No que diz respeito
--username/--password
àsvn
linha de comando - isso não importasvn+ssh
, porque estássh
perguntando, nãosvn
:svn - Subversion ignorando as opções "--password" e "--username" - Stack Overflow em Português
Além disso, como o log mostra,
ssh
ele "username:password@...
" não aceita o URL - e o mesmo não acontecesvn
. Por que é aceitável usar apenas o nome de usuário na URLsvn
, provavelmente está explicado em~/.subversion/config
:Observe que nada é dito sobre
<user>:<pass>@<hostname>
.Agora, graças à página Subversion sobre SVN + SSH no Debian , finalmente percebi que há uma
SVN_SSH
variável de ambiente usada no~/.subversion/config
túnel ssh (eu acho); e isso finalmente abre a possibilidade de usar o programasshpass
para manipular a senha de uma maneira unidirecional:Bem, pelo menos estou feliz por finalmente encontrar uma solução que funcione para mim - espero que isso ajude outra pessoa também,
Cheers!
fonte
fonte
Você também pode usar o nome de usuário e a senha dos switches fornecidos .
Consulte Autenticação de linha de comando .
fonte
Eu acho que usar sshpass (no Linux) é a melhor maneira de conseguir isso.
Instalar sshpass
Defina a variável de ambiente temporária
Edite o arquivo de configuração svn
Finalmente comente adicionar
sshpass -e
à linha ssh, antes dossh
comandofonte