ssh+svnでアクセスするための環境設定

FreeBSD上に置いたSubversionのリポジトリに、Windowsからssh+svnでアクセスするための設定のメモ。

以前、TortoiseSVNを設定したときの手順が非常にややこしかったのは、SSHの鍵の使い分け方が理解できていなかったのと、authorized_keysの設定の仕方がわかっていなかったため。この2点を押さえれば、結構すっきり。

環境

  • サーバ: FreeBSD 10 (Subversion 1.8.9)
  • クライアント: Windows7 (コマンドライン 1.8.9、TortoiseSVN 1.8.7)

Windows側にはPuTTYがインストール済みの前提。

クライアント側の設定

コマンドラインツール

  1. Apache Subvesionバイナリパッケージのページを参照し、バイナリ配布しているサイトの中から好きなパッケージを選択してダウンロード。自分はVisualSVNからダウンロードした。なお、TortoiseSVNを使うのにコマンドラインツールは特に必要ない。ただ単にコマンドラインのツールも使ってみたくてインストールしているだけ。

  2. インストールフォルダを作成し、ダウンロードしたZIPファイルの中にあるbinの下のファイルをすべて展開。

  3. システム環境変数にコマンドラインツールをインストールしたフォルダへのパスを追加。

  4. C:\Users\(ユーザ名)\AppData\Roaming\Subversion\config をエディタで開き、[tunnels] のディレクティブの下に次の行を追加する。

    ssh = plinkw.exe -P 9000 -i C:/home/user/.ssh/svn_rsa2.ppk
  5. コマンドラインからサーバ上のファイルを一覧表示して動作確認。

    # svn list svn+ssh://<ユーザ名>@<ホスト名>/<リポジトリ名>

TortoiseSVN

  1. TortoiseSVNダウンロードページから64bit版のインストーラと、日本語用Language packをダウンロードし、順にインストール。

  2. Rekisaのサイトから.NET 2.0用の最新版をダウンロードし、インストールフォルダを作成してその下に展開し、インストールしたフォルダへのパスをシステム環境変数Pathに追加する。

  3. エクスプローラを開き、どこでも良いので適当なフォルダの上で右クリックして「Preferences」を選択し、「Language」を日本語に設定する。一度閉じて開き直すと表示が日本語に変わる。

  4. もう一度TortoiseSVNの設定ウィンドウを開き、差分ビューアの「異なるリビジョンのファイルの比較に使用するプログラムの設定」と「異なるリビジョンのプロパティ..(略)」に次のようにRekisaを指定する。

    "C:\Program Files\rekisa\Rekisa.exe" -Title=%yname "%mine" -Title=%bname "%base"

SSHの設定

  1. PuTTYgen.exeを起動し、SSH-2 RSA 2048bitを選択してキーを作成する。

  2. 秘密鍵に名前を付けて保存する。ここではC:\home\user\.ssh\svn_rsa2.ppkとしておく。通常のSSH接続用の鍵とは別の名前をつけて、分けて用意する。そうしないと、サーバ側のauthorized_keys内で設定の使い分けができないため。

  3. エクスプローラを開き、適当なフォルダの上で右クリックしてTortoiseSVNの設定ウィンドウを開き、ネットワーク > SSH > SSHクライアントに次のように設定する。

    "C:\Program Files\putty\plinkw.exe" -P 11212 -i C:\home\user\.ssh\svn_rsa2.ppk

    -Pオプションの後ろは、サーバ側でSSHポートを変更している場合のポート番号。変更していなければ設定不要。

サーバ側の設定

SVNインストール

もともと入っていたので特に作業なし。もし新規に入れるなら、portmasterでコマンド一発。

# portmaster devel/subversion

SSHの設定

  1. authorized_keysファイルを作成し、PuTTYgen上に表示されている公開鍵をコピー&ペーストする。

    # cd
    # mkdir .ssh
    # chmod 700 .ssh
    # vi .ssh/authorized_keys
    (公開鍵をコピー&ペースト)
  2. authorized_keysをエディタで開き、追加した鍵の先頭を次のように書き換える。

    command="/usr/local/bin/svnserve -t -r /usr/local/rep" ssh-rsa AAAAB3NzaC(略

動作確認

コマンドライン

コマンドラインからサーバ上のファイルを一覧表示して動作確認。「ユーザ名@」の部分は、サーバ上のリポジトリ管理ユーザとWindowsでログインしている名前が一緒なら指定を省略可。

# svn list svn+ssh://<ユーザ名>@<ホスト名>/<リポジトリ名>

TortoiseSVN

適当なフォルダの上で右クリックし、TortoiseSVN > リポジトリブラウザーでリポジトリブラウザを開き、リポジトリを入力する。

svn+ssh://<ユーザ名>@<ホスト名>/<リポジトリ名>

一覧が表示されれば確認完了。

後は「TortoiseSVN Windows用Subversionクライアント」(公式マニュアル)を見ながら使うだけ。すべてきっちり翻訳されていて翻訳の質も良いので、下手な入門書を買うよりこちらを参照した方が良い。

タイトルとURLをコピーしました