11 January 2011

【さくらインターネット】 ユーザ権限でApache Subversionをインストール

さくらインターネット 共用レンタルサーバにApache Subversionをインストールしたときの備忘録

サーバ側での作業

■ インストール

インストール先は $HOME/local/bin とする

$ wget http://subversion.tigris.org/downloads/subversion-1.6.15.tar.gz
$ wget http://subversion.tigris.org/downloads/subversion-deps-1.6.15.tar.gz
$ tar xvf subversion-1.6.15.tar.gz
$ tar xvf subversion-deps-1.6.15.tar.gz
$ cd subversion-1.6.15
$ ./configure --prefix=$HOME/local --with-ssl --without-berkeley-db
$ gmake clean
$ gmake
$ gmake install
$ cd ..
$ rm -rf ./subversion-1.6.15     ← インストール後は不要なので消去

■ 環境変数 検索パス($PATH)の設定確認

$HOME/local/bin にパスが通っていない場合、.cshrc にパスを追加する。

~/.cshrc
set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin /usr/X11R6/bin $HOME/bin $HOME/local/bin)

■ リポジトリの作成

$HOME/svn 以下にリポジトリを作成するものとする。ここでは、testというサブディレクトリ (リポジトリ)を作成している。

$ mkdir ~/svn
$ svnadmin create ~/svn/test

クライアント側での作業

■ sshでの接続(ユーザ名、パスワードでの認証)

手元の端末(今回はUbuntu Linuxのコンソール)から。緑色で着色した部分は、ユーザ名、サーバ名に合わせる。たとえばチェッうアウトしてみる

$ svn checkout svn+ssh://user@example.com/home/user/svn/test
user@example.com's password: ***pasword***

適当なファイルを追加して、チェックインが成功すれば、Subversionがとりあえず稼動している。

■ SSH 公開鍵認証の設定

公式マニュアル SSH authentication and authorization に沿って設定する。
手元の端末がUbuntu Linuxとして、Subversionの設定ファイルにスキーマを追加する

~/.subversion/config
### Section for configuring tunnel agents.
[tunnels]
### Configure svn protocol tunnel schemes here.  By default, only
### the 'ssh' scheme is defined.  You can define other schemes to
### be used with 'svn+scheme://hostname/path' URLs.
 
ssh.example = /usr/bin/ssh -i ~/.key/id_rsa

実際のsvnアクセス時には次のようにアクセスする

$ svn checkout svn+ssh.example://user@example.com/home/user/svn/test

■ 通常のSSH接続の設定(参考)

SSH接続で公開鍵認証できるように設定ファイルに追記する

~/.ssh/config
Host example.com
 User user
 HostName example.com
 IdentityFile ~/.key/id_rsa
 IdentitiesOnly yes

テスト接続して設定が正しく読み込まれているか確認

$ ssh -T example.com -v
OpenSSH_8.2p1 Ubuntu-4ubuntu0.3, OpenSSL 1.1.1f  31 Mar 2020
 ~ 途中省略 ~
debug1: Trying private key: /home/USER/.key/id_rsa
Enter passphrase for key '/home/USER/.key/id_rsa':      ← id_rsa の暗号解除パスワードを入力
debug1: Authentication succeeded (publickey).     ← 接続成功のメッセージを確認する
 ~ 途中省略 ~
Warning: no access to tty (Bad file descriptor).
Thus no job control in this shell.