RAD Studio XEからSSHトンネリングを利用してSunversionリポジトリにアクセスする
LinuxやFreeBSDといったUnix系OSにSSHとSubversionがインストールされていれば、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のセッションを新規作成して以下の設定をする
- この段階で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/