読者です 読者をやめる 読者になる 読者になる

RAD Studio XEからSSHトンネリングを利用してSunversionリポジトリにアクセスする

C++Builder Tips

LinuxFreeBSDといったUnix系OSSSHSubversionがインストールされていれば、RAD Studio XEからでもSSHトンネリングを利用してリモートのSubversionリポジトリにアクセスできる。
サーバーは以下のように設定されているものとするので、適宜読み替えてください。

ユーザー名 username
サーバー名 myserver
リポジトリパス /home/username/svn-repos/
リポジトリのURL svn+ssh://username@myserver/home/username/svn-repos/

リモートアクセスには、PuTTYが必要なので、あらかじめインストールしておくこと。(ごった煮版でもOK。)
あと、残念ながら、inetdからsvnserveを起動する方法はうまくいかなかったので、リポジトリへのアクセスはリポジトリへのフルパスになる。

前準備

まず、PuTTY公開鍵暗号でサーバーにログイン出来るようにする。

  • puttygen.exeを実行して公開鍵と秘密鍵を生成する。生成した秘密鍵の保存先は他人に参照されないように注意。
  • サーバーにログインして、~/.ssh/authorized_keysを編集。生成した公開鍵を追加する。
  • PuTTYのセッションを新規作成して以下の設定をする
    • [接続|SSH|認証|認証のためのプライベートキーファイル]の値を保存した秘密鍵のフルパスにする
    • [接続|データ|ログインの詳細|自動ログインのユーザー名]の値をusernameにする
    • セッションに任意の名前をつけて保存
  • この段階でPuTTYからパスワード認証ではなくキーペアでログイン出来るはずなので、ログイン出来るかどうか確認。
  • Pageant.exeを実行して、"鍵の追加"で秘密鍵を追加する。セキュリティ的には少々よろしくないけど、スタートアップにPageant.exeへのショートカットを登録して、実行時引数に秘密鍵へのフルパスを追加すると便利。秘密鍵複数個用意すれば用途によってサーバーを変えることとかもOK。

環境設定

  • 検索パスにPuTTYをインストールしたフォルダを追加する。
  • エディタで'%APPDATA%\Subversion\config'を開き、セクションtunnelsのsshの値を"plinkw.exe"にする*1
[tunnels]
ssh=plinkw.exe
  • 既にTortoiseSVNを使用している場合は検索パスの追加は不要で、sshの値は"TortoisePlink.exe"でもOK。実際、自分はそうしている。
  • この段階でSSHトンネリングによるリポジトリへのアクセスが可能になっているので、コマンドプロンプトで以下を実行して確認。*2
svn ls svn+ssh://username@myserver/home/username/svn-repos/

RAD Studio XEからのアクセス

  • RAD Studioを起動して、[ファイル|バージョン管理リポジトリから開く]を選択。
  • [リポジトリの URL]フィールドにリポジトリのURL(svn+ssh://username@myserver/home/username/svn-repos/)を入力すれば、チェックアウトなどが可能。

RAD StudioのSubversion関連はドキュメントを参照。

*1:plink.exeだとやたらとコマンドプロンプトが表示されるので注意。

*2:svn.exeはRAD Studioがインストールしてくれる。