- 2009-06-23 (火) 1:13
- Eclipse | Linux | Subversion
本日はSubversiveを鍵交換方式によるSSHで使う方法を紹介します。
Subversiveは、Eclipse 3.4(Ganymede)からSubcripseに代わって標準のSubversion用クライアントとなっています。
仕事ではmod_dav_svn経由でのhttpアクセスでSubversionを使っているのですが、個人使用でのSubversionサーバーへのアクセスにはSSHを使用することにしました。
Gitによるバージョン管理も考えていましたが、TortoiseSVNのようにこれさえ入れておけば手軽に利用出来る!!というツールが今のところ無いのと、Git Extensionsを使ってみたら上手く動いてくれなかったので、そちらで悩むよりは手軽に使い慣れたSubversionでサクッとやってしまおうということからGitは今回は諦めました。
でも分散リポジトリの概念とWEB + DB PRESS Vol.50に掲載されているGit特集でのテクニックには惹かれるものがありますので、そのうちGitに移行しようとは思っているんですが・・・
そんなこんなでサクッとSubversionでの環境を整えてしまおうかと思っていたのですが、Eclipse標準のSubversiveによるSSHでのアクセスが出来るようになるまで結構ハマってしまったのでここに手順をメモしておこうと思います。
前提
今回は既にパスフレーズを設定した鍵交換方式によるSSHでの接続が可能なサーバーがあり、既にSubversionのリポジトリが利用可能であるということを前提として話を進めていきます。
鍵交換方式によるSSHでの接続は既に色々なサイトで解説がされているので、そちらを参考にしてください。
またSubversionのインストールについては、RPMforgeリポジトリをyumに追加した場合にSubversion 1.6.2が利用可能であったのでそちらを利用しました。
手順
上記前提をクリアしているとして、今回本記事で紹介する手順は以下の通りとなっています。
- OpenSSH方式の秘密鍵を生成する
- EclipseのSubversiveで「SVN + SSH」で接続する
使用したソフトウェアのバージョン
今回使用したソフトウェアのバージョンは以下のようになっています。
| CentOS | 5.3 x86_64 |
|---|---|
| Subversion | 1.6.2 |
| OpenSSH | 4.3p2-29.el5 |
| Eclipse | Pleiades All in One 3.4.2.20090426 |
|---|---|
| Subversive | 0.7.7.I20090224_1900(Pleiades付属) |
| PuTTY | 0.60 ごった煮版 |
Subversive on SSH
実現までに個人的に色々とハマり時間は掛かってしまったのですが、手順さえ分かってしまえば実はやることはほとんどありません。
OpenSSH方式の秘密鍵を生成する
まず解決するまで一番時間が掛かってしまった秘密鍵の生成方法です。
サーバーへの鍵交換方式による秘密鍵の生成にPuTTYに同梱されているputtygen.exeを使用していたのですが、どうやらそれで生成した秘密鍵はOpenSSH形式の鍵では無いようです。
これに気付くまで何度も設定を試して接続しては/var/log/secureをtailするということの繰り返しでした。
結局ログからは何も分からなかったのですが・・・
ということでOpenSSH形式の秘密鍵の生成方法です。
手順は至って簡単♪
まずPuTTYに同梱されているputtygen.exeを開きます。
『読み込み』ボタンを押してPuTTY形式の秘密鍵を読み込んでください。
パスフレーズを設定している場合にはパスフレーズを入力し、正常に秘密鍵を読み込むことが出来たら、メニューバーの『変換』 –> 『OpenSSH形式にエクスポート』としてOpenSSH形式の秘密鍵を出力します。
以上でOpenSSH形式の秘密鍵の生成は完了です。
EclipseのSubversiveで「SVN + SSH」で接続する
ここからは実際にSSHでSubversionのリポジトリを参照する手順となります。
なおSubversionのリポジトリのパスは以下のようになっていると仮定します。
/home/svn/test
では、Eclipseから新規プロジェクトで『SVNプロジェクト』を選択します。
「リポジトリー・ロケーション情報の入力」画面での『一般』タブで以下のように入力します。
| 入力欄 | 入力例 |
|---|---|
| URL | svn+ssh://www.sakuttoly.com/home/svn/test (svn+ssh://ドメイン名/リポジトリパス) |
| ユーザ | SSHでアクセスするユーザ名 |
そして『SSH設定』タブで以下のように秘密鍵を指定します。
| 入力欄 | 入力例 |
|---|---|
| ポート | SSHでアクセスするポート(デフォルトは22) |
| 認証 | 「秘密鍵」を選択 |
| ファイル | OpenSSH形式の秘密鍵ファイル |
| パスフレーズ | 秘密鍵のパスフレーズ |
上記のように入力して『次へ』を押して「リソースの選択」画面が表示され、Subversionリポジトリが参照出来たら成功です。
補足
“svn+ssh://”による接続の記述方式として、
svn+ssh://ユーザ名@ドメイン名/リポジトリのフルパス
という方法もありますが、今回のSubversiveにおいては認証項目のユーザの箇所にてユーザ名を入力していない場合には、結局SSH接続時に再度質問されるという動作をしました。
また、SSH設定を事前に入力していない場合にもSSH接続時に質問されます。
なので一度で接続出来るようにする方法は本記事で紹介した接続方法が手間も掛からずに良いかと思われます。
それから、今回のことを実現するために色々と調べていると同じことを実現するために、環境変数“SVN_SSH”にPuTTYに同梱されているplinkw.exeのパスを設定していたりする方法も見掛けました。
特にこの環境変数を設定しなくてもSubversionを参照することが出来たこともこちらに書いておくことにします。
参考リンク
オーム社
売り上げランキング: 15652

trunk,branches,tagsでとまどったら
Subversionを使う上で”は”よい本だと思う
日本語のSubversion解説本の最高作
- Newer: Windows Vistaの”pagefile.sys”を削除するには?
- Older: RedmineのCSSをカスタマイズする
Comments:0
Trackbacks:1
- Trackback URL for this entry
- http://www.sakuttoly.com/blog/2009/06/subversion_ssh.html/trackback
- Listed below are links to weblogs that reference
- Subversiveで鍵交換方式によるSSH接続 from サクっとly.com
- pingback from サクっとly.com - さくらインターネットでのSubversion運用と、Eclipse+Subversiveからの鍵交換方式sshの接続設定と、RedmineとSuversion連携を行う 09-07-26 (日) 3:43
-
[...] これは基本的に当ブログの過去の記事Subversiveで鍵交換方式によるSSH接続の手順で行けますが、2点注意点があります。 1点はPuttyではなくPoderosaを利用している点、もう1点はさくらインタ [...]








