PuTTYを使ったCVS利用法

Shigeyuki INOUE aka kaepapa

Revision History
Revision 0.0.12003.2.3Revised by: kaepapa
First release
Revision 0.0.22003.2.8Revised by: kaepapa
Changes for sourceforge.jp

Eclipse開発環境及びWinCVSでのPuTTYを経由したsourceforge.jpのcvsを利用する方法


Introduction

このドキュメントについて

このドキュメントにはPuTTYを経由したEclipse及びWinCVSからのsourceforge CVSシステムの利用が記録されています。今回はsourceforge.jpへの接続に関して書かれていますが、一般のcvsリポジトリへのext接続にも適用できることが書かれていると思います。

このドキュメントの作成者はkaepapa です。


免責事項

本ドキュメントの情報はご自身の判断に基づき利用してください。 作成者kaepapa及びRumble-jpプロジェクトは本ドキュメントの内容に関するいかなる責任も負いません。


利用したアプリケーション

紹介

Eclipseはhttp://www.eclipse.org/にて開発されている総合開発環境です。JavaをはじめCやPHPなども開発する事が可能であり、オープンソースなプロジェクトであることから昨今注目されています。WinCVSはhttp://www.wincvs.org/で開発されているWindows環境におけるCVS利用時のデファクトスタンダードといっても過言ではないと思われるGUIなCVSフロントエンドです。ごった煮と呼ばれる日本語化も行われています。またPuTTYはhttp://www.chiark.greenend.org.uk/~sgtatham/putty/にて開発されているWindows環境におけるssh2接続をサポートしたTelnet/SSH Clientです。ここではPuTTY本体以外にもPSCPPSFTPなど有用なアプリケーションが配布されていますので、ぜひ一度覗いてみることをお勧めします。

それぞれの有用性に関して、ここでは詳しい紹介はしませんがWeb上にはわりと多くの情報が存在していると思いますのでぜひ検索してみてください。


PuTTY環境の構築

Linux上で開発を行いCVSにCommitするのはOpenSSHが標準実装といっても過言ではない環境なのでそれほど難しくないかもしれませんが、Windows環境ではなかなか日本語ドキュメントがありません。ですのでまずはPuTTY環境の構築から紹介します。

Windows環境においてputtygen.exeを使用した鍵生成を行う場合は、Web上に多数の情報があるので省略します。今回はLinux上で作成したOpenSSHな鍵をPuTTYで使用可能なSSH形式な鍵へと変換を行い環境を構築したいと思っています。

PuTTY Ver.0.52までは出来なかったこの変換がVer.0.53から可能となりました。変換にはputtygen.exeが必要になりますのでダウンロードしておいてください。PuTTY関連のプログラムを一括してダウンロードする事も可能です。http://www.chiark.greenend.org.uk/~sgtatham/putty/download.htmlこちらからzipで固められたものや、installer付きなものもダウンロードできます。

Note

zipで固められたものをダウンロードしてきた場合は、展開する場所に注意が必要です。WinCVSから利用するときにProgram Files等のスペースを含んだフォルダがパスに含まれると実行ができなくなりますので、C:\puttyなどのフォルダに置くようにしてください

またLinux上における鍵生成方法は

$ssh-keygen -t rsa

でOKですし、Webに情報が溢れてますのでここまでにします。生成された秘密鍵をWindows上へscpなりFDでコピーしておいてください。

Figure 1. puttygen.exe

まずputtygen.exeを起動し、メニューの[Conversions]-[Import Key]を選択します。ここでコピーしておいたLinux上で作成済みの秘密鍵を指定し、パスフレーズを入力することでImportができます。そして必要ないかもしれませんがParametersのType of key to generate:を念のためSSH2 RSAに指定しておきました。続いてSave private keyボタンを押し、名前をそのままid_rsaで保存することでPuTTY(SSH)形式の秘密鍵(id_rsa.PPK)が作成されます。上書きするかとか聞かれるかもしれませんが独自形式を選択してあれば.PPKな拡張子がつきます。

確認のため鍵を作成したLinuxへPuTTYで接続してみてください。日本語を使用するにはhttp://hp.vector.co.jp/authors/VA024651/で配布されているパッチの当たったものを使用してください。接続できればOKだと思います。もちろんパスワード認証でなく鍵認証です。これでssh2接続は可能となったと思います。


sourceforgeへの鍵の登録

上記でローカル上の鍵の準備は済みましたが生成した公開鍵をsourceforge.jpに登録する必要があります。ここではsourceforge.jpでのアカウント作成の説明は省略しすでにアカウント登録が済んでいるものとします。

まずはsourceforge.jpへログインしてください。アカウント管理を開きCVS/SSHで共有する公開鍵の鍵の編集を開きます。ここで表示されるウインドウにLinux上で作成した公開鍵をペーストで貼りますが、このとき改行コードが入ってしまうと正しく鍵を登録する事ができませんので注意が必要です。正しく登録できたかは更新ボタンを押した後、再びアカウント管理画面が表示されCVS/SSHで共有する公開鍵のあとに"1"と表示されていれば問題無いはずです。

これでsourceforge.jpへの鍵の登録は完了しました。


PuTTY関係の準備

ではまずpageant.exeの準備をします。pageant.exeはLinuxでいうところのssh-agentですが、セキュリティ保護の目的からか設定を保存することはできません。cvs以外でもPuTTYを使ってサーバへの接続を行いたいのでWindows起動時にpageant.exeを起動してしまいたいと思います。最初にpageant.exeのショートカットを作成します。作成したショートカットを右クリックしてプロパティを開き、秘密鍵を起動オプションとして渡します。

C:\bin\pageant.exe C:\bin\id_rsa.PPK

Note

pageant.exe等のPuTTYプログラム及び秘密鍵がC:\bin以下に置かれているものとする。

Figure 2. pageant.exeショートカットのプロパティ

上記のようなショートカットを起動時実行するようにしておけば、起動時以下のようなウインドウが開き、パスフレーズを1度入力することで再起動しなければその日1日はずっとパスフレーズ入力を解除してくれます。

Figure 3. パスフレーズ入力ウインドウ

ここで外部プログラム(EclipseやWinCVS等)が使用する接続設定を作成します。これがないと接続できませんので気をつけてください。最初はpageant.exeのNewSessionから接続設定を作成しないと駄目なのかと思いましたがそうでは無いようです。ではputty.exeまたはputtyjp.exeを起動するかタスクバーにあるpageant.exeのアイコンを右クリックしてNewSessionを選択してください。以下に示すのはputtyjp.exeを起動した画面です。この時pageant.exeは起動していなければなりません。

Figure 4. PuTTY日本語版設定ウインドウ

[セッション]
ホスト名(またはIPアドレス)  :cvs.sourceforge.jp
ポート             :22
プロトコル           :ssh
[接続]
自動ログインのユーザ名     :kaepapa   (sfに登録してあるID)
[接続]-[SSH]
優先するSSHプロトコルバージョン :2 or 2only  (今回はSSH2RSAな鍵を使用しているため)
[接続]-[SSH]-[認証]
認証のためのプライベートキーファイル
                :実際の秘密鍵へのフルパス

上記のように設定を行い、この設定を保存します。

Caution

保存名は任意でかまいませんがEclipseやWinCVSでホスト名を設定するときに実際のホスト名と違う保存名を使用した場合には必ず使用した保存名を指定する必要があります。今回は間違わないようホスト名そのままの保存名を使いました。また優先するSSHプロトコルバージョンは1のままだと接続できなくなりますので必ず2を選んでください。

では実際に接続してみます。先ほど行った設定が読み込まれている状態で開くボタンを押してください。すると新しいウインドウが開きなにやら文字が表示されたのち勝手に閉じてしまうと思います。これが正常な終了です。

これでPuTTYの設定と準備が終わりました。

この設定が済んだことによりputty.exeまたはputtyjp.execvsサーバへのアクセス以外にもshells.sourceforge.jpへのログインも可能となりました。先ほど行った設定のサーバ名をshells.sourceforge.jpと変更することでログインできます。


Eclipseの設定

j2sdk、Eclipse等のインストールはすでに済んでいるものとします。まずはEclipseのショートカットを用意しました。新しいworkspaceの方が管理しやすいと思うので-dataオプションをつけて作成しました。適用ボタンを押して修正を反映させてください。これでC:\rumbleというフォルダを作成してそのなかにこのプロジェクトがすべて保存されることになります。

C:\eclipse\eclipse.exe -data C:\rumble

Figure 5. Eclipseショートカットのプロパティ

このショートカットからこのプロジェクトに対するEclipseの起動を行うことになるわけです。ではこのショートカットをダブルクリックし、Eclipseを起動してみます。最初にExt接続メソッドを設定します。メニューの[ウインドウ]-[設定]を選択すると以下のような設定ウインドウが開きます。この左のtreeで[チーム]-[CVS]-[Ext接続メソッド]を選択してください。ここでCVS_RSHフィールドにplink.exeへのフルパスを指定します。適用ボタンを押してOKでウインドウを閉じてください。

C:\bin\plink.exe

Figure 6. 設定ウインドウ

左上にあるパースペクティブを開くボタンを押して、CVSリポジトリー・エクスプローラーを開きます。

Figure 7. Eclipse起動画面

CVSリポジトリーというウインドウが開いたら、そこで右クリックしメニューの[新規]-[リポジトリー・ロケーション]を選択します。すると下記のような設定ウインドウが開きますので設定値を入力してください。

Figure 8. CVSリポジトリーの追加

ホスト         :cvs.sourceforge.jp (putty.exe上での保存名)
リポジトリー・パス   :/cvsroot/rumble-jp (ここは参加するプロジェクト名)
ユーザー        :kaepapa       (自分のID)
パスワード       :空白
接続型         :ext

上記のように設定を行い、OKボタンを押すとcvsへの接続チェックを行い次のようにロケーションが追加されれば成功です。

Figure 9. ロケーションの追加

これでロケーションを開き開発を行うモジュールをプロジェクトとしてチェックアウトすれば開発をはじめることができます。


WinCVSの設定

ここではWinCVSはすでに導入済みであり、PuTTY関係の準備が整っているものとします。また使用するWinCVSのバージョンはplink.exeを使うには1.3が必須とどこかでみた記憶があったので、1.3Beta10を使用しています。また使わないかもしれませんが(汗 PythonもVer.2.1.3を導入してあります。

はじめてWinCVSを起動するとHOMEを決めたりしなければならないことがあります。HOMEとはつまりCVSからチェックアウトしたデータを保存しておくフォルダのことです。続いてsf.jpへの接続設定をします。各項目は以下のように設定しました。

Figure 10. WinCVS 設定

Authentication:     ssh
Paht:               /cvsroot/rumble-jp 
Host address:       cvs.sourceforge.jp
User name:          kaepapa

CVSROOT:            kaepapa@cvs.sourceforge.jp:/cvsroot/rumble-jp

Note

上記設定値はEclipseで設定したものとほぼ同じです。

では続いて接続手段であるsshについての設定を行います。上記ウインドウのSettingsボタンを押すと以下のようなウインドウが表示されます。

Figure 11. ssh option setting

RSA public identity file:       C:\bin\id_rda.PKK
If ssh is not in the PATH:      C:\bin\plink.exe
Additional ssh options:         -ssh

上記のように秘密鍵とplink.exeへのパスを設定し、sshのオプションを指定します。

以上で設定は終わりです。有効にWinCVSを使うためにはdiff等のプログラムも必要となることでしょう。しかしここでは、sourceforge.jpへのExt接続が主たる目的であるため省略します。

では早速チェックアウトしてみましょう。メニューの[Create]-[Checkout mocule...]を選択してください。そうすると以下のようなウインドウが表示されます。

Figure 12. チェックアウト

Module name and path on the server:   project-site

モジュール名を指定し、OKボタンを押すとチェックアウトが行われます。

チェックアウトしたファイルを編集し、開発をはじめることができるようになりました。


まとめ

最後に

ここまでの作業でsourceforge.jpへのCVSExt接続が問題なく行えるようになります。ここまで到達するまでにWebでの様々な情報を検索しようとしましたがあまり有用と思われるものがありませんでした。しかし唯一WebStudioJapanの特集記事http://webstudio.japansite.org/modules/wfsection/index.php?category=3に情報がありました。またこの記事の執筆者であられるsakaikさんhttp://keikei.s21.xrea.com:8080/にフォーラムにて助言を賜りましたことをここに厚く御礼申し上げます。


参考サイト