web-dev-qa-db-ja.com

SubversionでLinuxのユーザー名とパスワードを使用するにはどうすればよいですか?

Sshログインと同じユーザー名とパスワードを使用してリポジトリにアクセスできるようにSubversionリポジトリを設定したいと思います。正しいユーザー名が必要になるようにログイン作業を行うことができましたが、すべてのパスワードを受け入れます。有効なパスワードも要求するようにするにはどうすればよいですか?

「標準モジュール」、Apache2、Subversion、libapache2-mod-authnz-externalを備えたUbuntuサーバー8.04.2を実行しています。さらに、認証に役立つ pwauth というユーティリティを見つけました。

構成の関連部分は次のとおりです。

/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

pwauthのconfig.h:

#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"

(何か足りないものはありますか?)

編集:潜在的なセキュリティの問題については知っていますが、この設定が機能しない理由を知りたいです。

2
Harriv

私は以前にこれを設定しましたが、Subversionが機能する方法では、セッション中に何百回もパスワードの入力を求められます。

(これを行うには、Subversionクライアントをsvn + ssh:// username @ servername/path/to/repoに接続するだけです)

答えは、sshキーを使用することです。

秘密鍵と公開鍵のペアを設定し、公開鍵を〜/ .ssh/authorized_keysファイルにアップロードしますが、接頭辞として「command = "/ usr/bin/svnserve -t -r/path/to/repo」を付けます。

そして、上記のようにsvn + sshを使用して再度接続します

5
Brent

そうしないでください。安全性が低い可能性のあるアプリケーションでは、ログインパスワードを使用しないでください。ブレントが言うようにsshキーを使用してください。

1
David Thornley

apacheを完全に回避し、svn + sshプロトコルを使用します

0
drfrog