Como usar o nome de usuário e senha do Linux com o Subversion?

2

Eu gostaria de configurar o repositório Subversion para que o mesmo nome de usuário e senha possam ser usados para acessar o repositório como no login ssh. Consegui obter o trabalho de login para que o nome de usuário correto seja necessário, mas ele aceita qualquer senha. Como posso fazer com que exija uma senha válida também?

Estou executando o servidor Ubuntu 8.04.2 com "módulos padrão", Apache2, Subversion e libapache2-mod-authnz-external. Além disso, encontrei o utilitário chamado pwauth para ajudar na autenticação.

Aqui estão as partes relevantes da configuração:

/etc/apache/apache2.conf

AddExternalAuth pwauth /usr/local/bin/pwauth
SetExternalAuthMethod pwauth pipe
AddExternalGroup unixgroup /usr/local/bin/unixgroup
SetExternalGroupMethod unixgroup environment

/etc/apache/mods-available/dav_svn.conf:

AuthType Basic
AuthBasicProvider external
AuthExternal pwauth
GroupExternal unixgroup
AuthName "Subversion repository"
Require group users
Require user myaccount

/etc/pam.d/pwauth:

auth    required        pam_succeed_if.so user=www-data
account required        pam_localuser.so

config.h para pwauth:

#define PAM                     /* Linux PAM or OpenPAM*/
#define UNIX_LASTLOG            /**/
#define HAVE_LASTLOG_H          /**/
#define NOLOGIN_FILE "/etc/nologin"     /**/
#define MIN_NOLOGIN_UID 1               /**/
#define CHECK_LOGIN_EXPIRATION          /**/
#define CHECK_PASSWORD_EXPIRATION       /**/
#define SERVER_UIDS 33          /* user "www-data" */
#define MIN_UNIX_UID 500        /**/
#define SLEEP_LOCK "/var/run/pwauth.lock"

(algo está faltando?)

Editar: estou ciente de possíveis problemas de segurança, mas quero saber por que essa configuração não funciona.

    
por Harriv 10.06.2009 / 22:12

3 respostas

4

Eu configurei isso antes, e a maneira como o subversion funciona solicita centenas de vezes suas senhas durante uma sessão.

(Para fazer isso, basta conectar seu cliente de subversão ao svn + ssh: // nomedousuário @ nomedoservidor / caminho / para / repo )

A resposta é usar chaves ssh.

Configure seu par de chaves privada / pública e carregue sua chave pública em seu arquivo ~ / .ssh / authorized_keys, mas prefixe com "command=" / usr / bin / svnserve -t -r / caminho / para / repo "

E conecte novamente usando svn + ssh como mencionado acima

    
por 10.06.2009 / 22:32
0

Não faça isso. Não use senhas de login em aplicativos potencialmente menos seguros. Use chaves ssh como Brent diz.

    
por 10.06.2009 / 23:55
-1

evite o apache e use o protocolo svn + ssh

    
por 10.06.2009 / 23:42