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 を変更すれば良い(はず)。
- 外部定義か作業ディレクトリを分けるか、trunk にブランチか (2005-01-31)
- Subversion で SSH port forwarding 経由での... (2006-06-29)
- 仕事のファイルを順次 Subversion リポジトリに突っ込む (2004-10-04)
- プロジェクト関連ドキュメントを TeX で (2004-07-23)
- SVN::Webインストール失敗 (2006-02-17)
2004年5月17日 (月)
■ TortoiseSVN 1.0.4

Windows 用の Subversion クライアントとして、TortoiseSVNを Windows XP BOX に入れてみた。
svn+ssh だとうまく認証できない(SSHクライアントとしては付属の TortoisePlink を使用)。PuTTY FatalError SSH_DISCONNECT_PROTOCOL_ERROR と出てしまう。 パスワード入力ダイアログをよくみるとユーザ名が空になっているようなので、
svn+ssh://username@servername/...
としたらつながるようになった。 しかし毎回1発目のパスワード入力は失敗して、2回目のパスワード入力で成功するというのは気持ち悪いな。
TortoiseSVN 自体は慣れると使い勝手は良さそうだ。
- 普通の人向けに svnserve を立ち上げるか (2005-07-26)
- TortoiseSVN と svn+ssh (2004-07-26)
- TortoiseSVN と svn+ssh な svn:externals (2004-07-23)
- Synergy 再び (2003-11-28)
- ノート PC を持たずに会社に行きたい (2006-12-21)
2004年7月23日 (金)
■ TortoiseSVN と svn+ssh な svn:externals

以前 TortoiseSVN から svn+ssh で接続する際にユーザ名をURIに含めることで認証が通るようにしてみた。
しかし今日 svn:externals プロパティで外部定義の設定をしていてはたと困る。 svn:externals で指定するURI はリポジトリ利用者で共有するので、チェックアウトする時のURIのようにユーザ名を含める訳にはいかない。
で、さらっと調べたところ TortoiseSVN の SSHクライアントの設定のところでユーザ名を指定できるようだ。 デフォルトで TortoisePlink.exe へのフルパスが設定されているが
前略\TortoisePlink.exe -l ユーザ名
のようにすればユーザ名を指定できる。
一つのリポジトリにアクセスするだけならとりあえずこれでしのげそうだ。
それにしても更新をかけた際に外部定義毎にパスワードの問い合わせがあるので面倒(外部定義先が同じURIであっても)。
やはりきちんとセッションを保存しておくようにせねば。
それから、TortoiseSVN は 1.0.4 から 1.0.8 に上げておく。
- TortoiseSVN 1.0.4 (2004-05-17)
- 普通の人向けに svnserve を立ち上げるか (2005-07-26)
- TortoiseSVN と svn+ssh (2004-07-26)
- ノート PC を持たずに会社に行きたい (2006-12-21)
- Unison + Zebedee (2004-06-11)
2004年7月26日 (月)
■ TortoiseSVN と svn+ssh

マニュアルを読んだら、SSHクライアントの設定のところでユーザ名だけでなくパスワードも指定する例が示されていた。
前略\TortoisePlink.exe -l ユーザ名 -pw パスワード
なるほど。動いた。しかしかなり嫌な感じ。
ということで、「PC日記: svn+ssh on Windows」で紹介されている方法にしてみた。
@ 準備 (Windows 側)
@ SSH用の鍵ペアを作成 (Windows 側)
- PuTTYgen を実行。
- SSH2 RSA を選択。
- Generate マウスを適当に動かす。
- パスフレーズを入力。
- Save private key ボタンで PuTTY Private Key File (.ppk) として保存。
- 「Public key for pasting into OpenSSH authorized_keys file:」 覧に表示される文字列をコピーして、テキストファイルに保存(名前は任意)。
@ SSHの鍵をサーバ側に置く (サーバ側)
- そのファイルの中身を Subversion リポジトリのあるサーバの ~/.ssh/authorized_keys に追加。
@ 接続テスト (Windows 側)
- PuTTY を実行。
@ TortoiseSVN でパスフレーズ入力を省略できるように Pagent を起動 (Windows 側)
- Pageant を起動。
- キーリストを開いて Add Key. 保存してある ppk ファイルを指定。パスフレーズを入力。
この状態で TortoiseSVN から接続できるようになった。
@ 追記
2005年8月4日に若干体裁を整理。
- 普通の人向けに svnserve を立ち上げるか (2005-07-26)
- TortoiseSVN 1.0.4 (2004-05-17)
- TortoiseSVN と svn+ssh な svn:externals (2004-07-23)
- 自宅の無線 LAN を復旧 & IEEE 802.11g 化 (2004-11-26)
- Synergy 再び (2003-11-28)
2005年7月26日 (火)
■ 普通の人向けに svnserve を立ち上げるか

開発チームでは主に svn+ssh で Subversion を利用している。
Windows ユーザは
- 前準備「PuTTYgen で鍵ペアを生成し」「リポジトリのあるサーバ(Linux)側に公開鍵を登録」
- 前準備「Pagent を動かして秘密鍵を指定しておく」
- TortoiseSVN でリポジトリアクセス
という手順をとっている(参考記事)。 しかしこの方法は SSH に詳しくなかったり Linux のオペレーションとかに慣れていなかったりするユーザにはかなり敷居が高い。
最近ソフトウェア開発以外でのチームでも Subversion の利用を検討しているが、この手順だと多分萎えるはず。
SSHで暗号化するほどのセキュリティが必要ない運用なので、svnserve を起動して運用した方が楽そうだ。まだ使ったことがないけれど。
svnserve を実行する権限を気にする必要がある以外は基本的には手間なしのはず。 しかし svnserve の組み込みの認証機能を使う場合には、平文パスワード文字列を含むパスワードファイルを使う必要があるのがちょっと嫌。
- TortoiseSVN と svn+ssh (2004-07-26)
- TortoiseSVN 1.0.4 (2004-05-17)
- ノート PC を持たずに会社に行きたい (2006-12-21)
- Unison + Zebedee (2004-06-11)
- TortoiseSVN と svn+ssh な svn:externals (2004-07-23)
2006年6月29日 (木)
■ Subversion で SSH 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
のようにする。
これで
と合わせて随分外部で作業できるようになった。 それだけ、外部でもやれる仕事が増えたということでもあるが。
- connect.c を使って SOCKS サーバ経由で社内サーバへ SSH 接続 (2007-01-06)
- 仕事のファイルを順次 Subversion リポジトリに突っ込む (2004-10-04)
- TortoiseSVN と svn+ssh (2004-07-26)
- TortoiseSVN 1.0.4 (2004-05-17)
- 普通の人向けに svnserve を立ち上げるか (2005-07-26)
■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザイン ビックカメラ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)




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