yuu_nkjm blog


2011-11-30(Wed) [長年日記] 編集

[openSUSE][Apache][WebDav][SVN] svn over httpの設定

svn co svn+ssh://hoge.nkjm.info/svn/nkjm workspace

ではなく,

svn co http://hoge.nkjm.info/svn/nkjm workspace

をやりたい.

サーバの設定

digest認証

yastの/etc/sysconfig エディタで,Network/WWW/Apache2を選択しAPACHE_MODULESを編集する.auth_digestを追加する.

SVNの準備

yastでsubversion,subversion-serverを入れる.

WebDavの準備
SVN on DAVの設定

yastの/etc/sysconfigエディタで,Network/WWW/Apache2でAPACHE_MODULESを編集する.dav_svn authz_svnを追加する.

/etc/apache2/conf.d/subversion.conf(もしくはホスト毎の設定ファイル)に以下の設定を書き込む.

閲覧するだけでもパスワードが必要
<Location /svn>
    DAV svn
    SVNPath /svn/repos/nkjm
    AuthType Digest
    AuthName "Private"
    AuthUserFile /hogehoge/.htdigest
    Require valid-user
    Options Indexes
    Order allow,deny
    Allow from all
</Location>
閲覧するだけならパスワードなし,書き込み時には必要(うまくいかなかった)

以下の設定でうまくいくと思ったんだけど,意図通りは動作しなかった.

<Location /svn>
    DAV svn
    SVNPath /svn/repos/nkjm
    <LimitExcept GET PROPFIND OPTIONS REPORT>
        AuthType Digest
        AuthName "Private"
        AuthUserFile /hogehoge/.htdigest
        Require valid-user
    </LimitExcept>
    Options Indexes
    Order allow,deny
    Allow from all
</Location>

SVNレポジトリの作成

svn create /svn/repos/nkjm
chmod -R wwwrun:www  /svn/repos/nkjm

WebDAVのテスト

SVNクライアントによるアクセス

http経由でチェックアウト出来るか,コミットできるかを確認する.

svn co http://hoge.nkjm.info/svn/nkjm workspace
cd workspace
svn add README
svn add ADD_FILE_TEST
svn commit -m "Add files."
ブラウザによるアクセス

"http://hoge.nkjm.info/svn/nkjm"にブラウザからアクセスする.

画像の説明
cadaver

cadaverというdavクライアントがあるらしい.yastでcadaverを入れる.

cadaver http://hoge.nkjm.info/svn/nkjm

備考・注意事項

  • ユーザ毎に,閲覧権限,書き込み権限を与える様な設定はできていない.やりたい場合は,以下の記事を参照.

    リポジトリの中も細かく制御したいorユーザごとの制御もしたい場合

    <Location "/svn/repos">
      DAV svn
      SVNParentPath /absolute/path/to/repository/parent
      AuthzSVNAccessFile /my/svn/authz/file
     
      AuthType Basic
      AuthName "Subversion repository"
      AuthUserFile /my/svn/user/passwd/file
      Require valid-user
    </Location>
    • /my/svn/authz/file
      # グループ定義
      [groups]
      grp1 = user1, user2
      grp2 = user1, user3
       
      # 全ユーザに全リポジトリ以下の読み込み権限を与え、
      # user0に全リポジトリ以下の読み書き権限を与える。
      [/]
      * = r
      user0 = rw
       
      # grp1に属するユーザにproject1リポジトリ以下の読み書き権限を与える
      [project1:/]
      @grp1 = rw
       
      # grp2に属するユーザにproject2リポジトリのtrunk以下の読み書き権限を与える
      [project2:/trunk]
      @grp2 = rw
  • レポジトリの持ち主がwwwrun:wwwになっているので,ssh+svnでコミットしようとするときに注意する必要がある.
  • HTTPプロキシ経由でしか外部に出られないようなケースもあるので,HTTPでSVNが扱えると便利

  • DavとSVNを使おうとするディレクトリに対して,"Options Indexes"が必要なようだ.DAV svnがあれば,よろしくやってくれるのかと思っていたけれど.

参考ページ


2011-11-29(Tue) [長年日記] 編集

[ssh][PuTTY] sshの多段の認証転送

状況

秘密鍵の置き場所に迷ったときは認証の転送が便利というお話し.

クライアントPC => ゲートウェイサーバ(鍵認証のみ) => アクセス対象サーバ(鍵認証のみ)

といった経路でしか管理したいサーバにアクセスできない(下図)とき,ゲートウェイサーバに秘密鍵を置くしかないの?となることがある.そんなときは,認証の転送が便利.下図のプライベートサーバ,公開サーバ2において,また認証の転送を行いたいときは「もう一段階先への転送」で書いた内容を実行する必要がある.

画像の説明

認証鍵の転送

SSHクライアントにPuTTYを使っている場合,SSH->SSH認証の設定->認証パラメータの「エージェントフォワーディングを認める」にチェックを入れる.以下のページに詳細がよくまとまっている.

Pageantssh-agent と同じく、認証鍵の転送機能を持っています。これを利用すれば、たとえログイン先のサーバーに認証鍵がなくても、ローカルにある認証鍵を使用してログイン先からさらに別のサーバーに SSH 接続を確立できます。サーバーに秘密鍵を保存する必要が無いため、秘密鍵の流出の危険を大幅に削減できます。

Pageant による認証鍵の転送は以下の手順で利用できます。

  1. Pageant を起動し、必要な認証鍵を登録する。
  2. PuTTY を起動する。
  3. 普通に SSH ログインするのですが、その際に [接続]-[SSH]-[認証] の「エージェントフォワーディングを認める」にチェックを入れておきます。もしくは、起動時に "-A" オプションを指定する方法もあります。
  4. ログイン先で、さらに "ssh <ユーザー名>@<ホスト名>" などとしてさらに別のホストにログインします。
  5. Pageant に必要な認証鍵が登録されていれば、正常にログインできるはずです。

なお、Pageant で認証鍵の転送機能を利用するためには、ログイン先の SSH サーバーが OpenSSH でなければなりません。本家 SSHOpenSSH とは別のプロトコルを使用しており、そちらは Pageant ではサポートされていません。

画像の説明

もう一段階先への転送

SSHサーバを渡り歩くには,~/.ssh/configに"ForwardAgent yes"を追加する必要がある.

cat ~/.ssh/config
# "ForwardAgent yes"がなかったら,以下を実行.
echo "ForwardAgent yes">>~/.ssh/config

ssh の agent forwarding | 自作自演がすごく分かりやすかった.


2011-11-28(Mon) [長年日記] 編集

[ssh][PuTTY] PuTTYでリモートのトンネリング

PuTTY側の設定で,SSH→トンネルで「ローカルポートは他のホストからの接続を受け入れる」「リモートポートも同様」にチェックを入れる.

接続したサーバで,"netstat -an"を実行する."源ポート"で指定したポート(例えば10000)が開いている.

  • 他ホストに公開していない場合 : TCP 127.0.0.1:10000 0.0.0.0:0 LISTENING
  • 他ホストに公開している場合 : TCP 0.0.0.0:10000 0.0.0.0:0 LISTENING

と表示される.

関連ページ


トップ 最新 追記 設定
2006|01|06|12|
2007|06|09|
2008|01|03|04|06|07|08|09|10|12|
2009|01|02|05|06|07|08|10|11|12|
2010|03|04|05|06|07|08|09|10|11|
2011|01|02|03|04|05|06|07|08|09|11|12|
2012|01|02|04|06|07|08|10|11|12|
2013|01|02|03|07|08|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|
2015|01|02|07|11|12|
2016|01|03|05|07|08|09|