トップ(最新)

nDiki : svn+ssh

2004年3月4日 (木)

ドキュメント管理用 Subversion リポジトリ作成 このエントリーを含むはてなブックマーク

スポンサード リンク

新しく書くドキュメントを Subversion 管理してみる。 今後のドキュメントで共有(かつブランチする)マクロファイル等を分けて管理できるようにレイアウトを検討。

@ リポジトリ作成

自分の home の下 var/repos/doc を作成する。サーバ上で以下を実行。

 cd ~/var
 mkdir repos
 mkdir repos/doc
 chgrp doc repos/doc
 chmod g+ws repos/doc
 svnadmin create repos/doc

@ 初期ディレクトリ構造作成

project-1 の report ドキュメント手始めに管理する。 今後他と共有する予定の texmf ディレクトリも別途用意。

クライアント上で以下を実行。

 mkdir /tmp/layout
 cd /tmp/layout
 mkdir project-1
 mkdir project-1/trunk
 mkdir project-1/trunk/report <-- report のファイルを置く
 mkdir project-1/branches
 mkdir project-1/tags
 mkdir texmf
 mkdir texmf/trunk
 mkdir texmf/branches
 mkdir texmf/tags
 mkdir texmf/trunk/texmf
 mkdir texmf/trunk/texmf/my-company <- 社内共有マクロファイル置き場
 svn import . svn+ssh://server/home/naney/var/repos/doc \
   --message 'Initial repository layout'
 cd
 rm -rf /tmp/layout

@ 外部定義プロパティを設定

report 作業ディレクトリの下に texmf/trunk/texmf を texmf として checkout するように、svn:externals を設定する。

 mkdir /tmp/work
 cd /tmp/work
 svn checkout svn+ssh://server/home/naney/var/repos/doc/project-1/trunk
 cd trunk
 svn propset svn:externals 'texmf svn+ssh://server/home/naney/var/repos/doc/texmf/trunk/texmf' report
 svn commit
 cd report
 svn update

これで、report の下に自動的に texmf が来るようになる。 他のドキュメントプロジェクトでも同様に svn:externals を指定すれば texmf が使えるようになる。 texmf のブランチや、ある時点のスナップショットを使いたい場合は svn:externals を変更すれば良い(はず)。

twitter.com/Naney の follower になってください。


[ 3月4日全て ]

2004年5月17日 (月)

TortoiseSVN 1.0.4 このエントリーを含むはてなブックマーク

Windows 用の Subversion クライアントとして、TortoiseSVNWindows XP BOX に入れてみた。

image:http://www.naney.org/img/2004/screenshot/2004-05-17-TortoiseSVN-SSH-error.png

svn+ssh だとうまく認証できない(SSHクライアントとしては付属の TortoisePlink を使用)。PuTTY FatalError SSH_DISCONNECT_PROTOCOL_ERROR と出てしまう。 パスワード入力ダイアログをよくみるとユーザ名が空になっているようなので、

  svn+ssh://username@servername/...

としたらつながるようになった。 しかし毎回1発目のパスワード入力は失敗して、2回目のパスワード入力で成功するというのは気持ち悪いな。

TortoiseSVN 自体は慣れると使い勝手は良さそうだ。


[ 5月17日全て ]

2004年7月23日 (金)

TortoiseSVNsvn+ssh な svn:externals このエントリーを含むはてなブックマーク

以前 TortoiseSVN から svn+ssh で接続する際にユーザ名をURIに含めることで認証が通るようにしてみた。

しかし今日 svn:externals プロパティで外部定義の設定をしていてはたと困る。 svn:externals で指定するURI はリポジトリ利用者で共有するので、チェックアウトする時のURIのようにユーザ名を含める訳にはいかない。

で、さらっと調べたところ TortoiseSVNSSHクライアントの設定のところでユーザ名を指定できるようだ。 デフォルトで TortoisePlink.exe へのフルパスが設定されているが

 前略\TortoisePlink.exe -l ユーザ名

のようにすればユーザ名を指定できる。

一つのリポジトリにアクセスするだけならとりあえずこれでしのげそうだ。

それにしても更新をかけた際に外部定義毎にパスワードの問い合わせがあるので面倒(外部定義先が同じURIであっても)。

やはりきちんとセッションを保存しておくようにせねば。

それから、TortoiseSVN は 1.0.4 から 1.0.8 に上げておく。


[ 7月23日全て ]

2004年7月26日 (月)

TortoiseSVNsvn+ssh このエントリーを含むはてなブックマーク

マニュアルを読んだら、SSHクライアントの設定のところでユーザ名だけでなくパスワードも指定する例が示されていた。

 前略\TortoisePlink.exe -l ユーザ名 -pw パスワード

なるほど。動いた。しかしかなり嫌な感じ。

ということで、「PC日記: svn+ssh on Windows」で紹介されている方法にしてみた。

@ 準備 (Windows 側)

  1. PuTTYインストール

@ SSH用の鍵ペアを作成 (Windows 側)

  1. PuTTYgen を実行。
    1. SSH2 RSA を選択。
    2. Generate マウスを適当に動かす。
    3. パスフレーズを入力。
    4. Save private key ボタンで PuTTY Private Key File (.ppk) として保存。
    5. 「Public key for pasting into OpenSSH authorized_keys file:」 覧に表示される文字列をコピーして、テキストファイルに保存(名前は任意)。

@ SSHの鍵をサーバ側に置く (サーバ側)

  1. そのファイルの中身を Subversion リポジトリのあるサーバの ~/.ssh/authorized_keys に追加。

@ 接続テスト (Windows 側)

  1. PuTTY を実行。
    1. Session - Host Name にリポジトリのあるホスト名を指定。
    2. Connection - Auto-login username にリポジトリのあるホスト上のアカウントを指定。
    3. Connection - SSH - Auth - Private key file for authentication: で 保存した ppk ファイルを指定。
    4. Session - Saved Sessions にホスト名を入力して Save。
    5. Open ボタンを押して接続確認。

@ TortoiseSVN でパスフレーズ入力を省略できるように Pagent を起動 (Windows 側)

  1. Pageant を起動。
    1. キーリストを開いて Add Key. 保存してある ppk ファイルを指定。パスフレーズを入力。

この状態で TortoiseSVN から接続できるようになった。

@ 追記

2005年8月4日に若干体裁を整理。


[ 7月26日全て ]

2005年7月26日 (火)

普通の人向けに svnserve を立ち上げるか このエントリーを含むはてなブックマーク

開発チームでは主に svn+ssh で Subversion を利用している。

Windows ユーザは

  1. 前準備「PuTTYgen で鍵ペアを生成し」「リポジトリのあるサーバ(Linux)側に公開鍵を登録」
  2. 前準備「Pagent を動かして秘密鍵を指定しておく」
  3. TortoiseSVN でリポジトリアクセス

という手順をとっている(参考記事)。 しかしこの方法は SSH に詳しくなかったり Linux のオペレーションとかに慣れていなかったりするユーザにはかなり敷居が高い。

最近ソフトウェア開発以外でのチームでも Subversion の利用を検討しているが、この手順だと多分萎えるはず。

SSH暗号化するほどのセキュリティが必要ない運用なので、svnserve を起動して運用した方が楽そうだ。まだ使ったことがないけれど。

svnserve を実行する権限を気にする必要がある以外は基本的には手間なしのはず。 しかし svnserve の組み込みの認証機能を使う場合には、平文パスワード文字列を含むパスワードファイルを使う必要があるのがちょっと嫌。


[ 7月26日全て ]

2006年6月29日 (木)

SubversionSSH port forwarding 経由での svn+ssh このエントリーを含むはてなブックマーク

普段プライベートネットワーク内で、svn+ssh で接続している Subversion リポジトリSSH 経由で port fowarding して接続するようにする。

 [ノート PC] -- [ゲートウェイ] -- [リポジトリのあるサーバ]
                gw.example.com    192.168.0.x

@ ポートフォワーディング用 SSH ラッパー

例えば svn-gw-ssh という名前で以下のファイルを作成:

 #!/bin/sh
 HOST_NAME=$1
 shift 1
 ssh -f -L 8023:$HOST_NAME:22 gw.example.com sleep 10
 ssh -p 8023 -o HostKeyAlias=$HOST_NAME localhost $@

@ svn 用ラッパーも書いておく

例えば svn-gw という名前で以下のファイルを作成:

 #!/bin/sh
 SVN_SSH=svn-gw-ssh svn $@

@ 使う

これで例えば svn+ssh://192.168.0.x/var/repos でチェックアウトした作業ディレクトリ上をプライベートネットワーク内外で、更新したりコミットしたりできるようになる。

プライベートネットワーク内からは今まで通り。

 svn update

プライベートネットワーク外からは

 svn-gw update

のようにする。

これで

と合わせて随分外部で作業できるようになった。 それだけ、外部でもやれる仕事が増えたということでもあるが。


[ 6月29日全て ]

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 0.17847s / load averages: 0.29, 0.23, 0.18
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)