SVN+SSHの鍵認証セットアップ(TortoiseSVN編)

前回のCUIによるSVN+SSH鍵認証に続き、
TortoiseSVNによるSVN+SSH鍵認証についてのメモ書きです。

TortoiseSVNにはTortoisePlinkが付属していますが、
私のマシン(Windows7、64bit)では何故か上手くSSHログインできず・・・
PuTTYごった煮版をインストールしたら上手くログインできました。

複数の鍵を管理したい場合はPuTTYごった煮版を使ったほうが非常に楽です。
(デフォルトのTortoisePlinkでは複数の鍵を管理できない)

色々なサイト様で設定手順が書かれているため、
いまさら書くまでもない気もしますが、
嵌った点の覚書を兼ねて手順を記しておきます。

1.PuTTYごった煮版のインストール
以下サイトよりインストーラをダウンロードします。

http://yebisuya.dip.jp/Software/PuTTY/

ダウンロードしたらインストーラを起動、
画面にしたがってインストールしてください。
基本的に次へをクリックしていけば大丈夫です。

2.公開鍵・秘密鍵の生成
PuTTYgenを起動します。

run_puttygen

起動したら、「生成」ボタンを押下してマウスを適当に動かしてください。

puttygen_init

puttygen_gen

プログレスバーが100%になるまでマウスを動かすと鍵が生成されます。
ここで、「秘密鍵の保存」ボタンを押下して秘密鍵を適当な名前で保存します。

puttygen_saveppk

3.公開鍵の登録
公開鍵のテキスト全体をサーバ側の~/.ssh/authorized_keysに追加します。

puttygen_cppub

vi ~/.ssh/authorized_keys
公開鍵データ
公開鍵データ
 ・・・
末尾に新たに作成した公開鍵データをペースト

ここで、ペーストした公開鍵の前に以下command〜を挿入します。
(http://subversion.apache.org/faq.html#ssh-svnserve-location参照)

公開鍵データ
公開鍵データ
 ・・・
command="/opt/bin/svnserve -t" 末尾に新たに作成した公開鍵データをペースト

このおまじないは、svnserveコマンドが見つからないエラーを回避するためのものです。
ここまで手順を実施したら、PuTTYgenはもう使わないため閉じても構いません。

4.SSHデーモン再起動
authorized_keysの設定を有効にするために、SSHデーモンを再起動します。

5.接続先の指定
PuTTYを起動します。

run_putty

ホスト名、ポートをそれぞれご自身のサーバに合わせた設定にします。

puttyw_host_port

左ツリーの「接続」→「データ」を選択します。
「自動ログインのユーザ名」にSSHログインのユーザ名を入力します。

puttyw_user

左ツリーの「接続」→「SSH」→「認証」を選択します。
「認証のためのプライベートキーファイル」に2.で生成した秘密鍵のパスを指定します。

puttyw_ssh_auth

左ツリーの「セッション」を選択します。
「セッション一覧」下の入力欄に適当なセッション名を入力し、「保存」ボタンを押下します。

puttygen_session_save

セッション一覧に設定情報が追加されました。

ここまで手順を実施したら、右下の「開く」ボタンを押下してみましょう。
以下のようなターミナル画面が表示されれば成功です。

puttyw_term

もし表示されない場合は前の手順を見直してみてください。

6.チェックアウト
リポジトリのチェックアウト用に適当なディレクトリを作成します。
作成したら、エクスプローラの右クリックで「SVNチェックアウト」を選択します。

tsvn_chkout

チェックアウト画面が表示されたら、
「リポジトリURL」にsvn+ssh://セッション名/リポジトリのパス
「チェックアウト先ディレクトリ」に前述で作成したディレクトリを指定します。
URLのsvn+ssh://の次にはホスト名ではなくセッション名を指定します。
(ここで嵌りました・・・)

tsvn_sckout_setting

「OK」ボタンを押下します。

tsvn_chkout_success

上の画面のようにエラーが出ずにチェックアウトできれば成功です。

このように、PuTTYごった煮版を使用すれば
非常に楽にSSHトンネルを使ったSVN接続が可能になります。
複数サーバにSVN+SSHでアクセスしたい場合には非常に有難いですね。

■参考文献
WindowsでTortoiseSVNを使う
TortoiseSVN + Puttyごった煮 を使ってSSH key認証のリポジトリサーバーを使う