
Mercurial Serverをインストールする
最初に思いついたのは、リポジトリからのインストールです。 パッケージを更新してコマンドを実行した後:
apt-get install -y mercurial-server
最新ではないバージョン1.0.1-1がインストールされていることがわかりました。
バージョン1.2-1のdebパッケージが公式Webサイトで発見されました。これはチームによってインストールされました
dpkg -i mercurial-server_1.2-1_all.deb
キー認証用にSSHを構成する
なぜなら ssh経由でサーバーにアクセスするユーザーのすべてのキーを1か所に保存して、 / etc / ssh / sshd_configファイルに次の行を追加したかったのです。
AuthorizedKeysFile /etc/ssh/keys/%u.pub
これは、キーファイルが/ etc / ssh / keys /フォルダーに保存され、 username.pubのように見えることを意味します
Mercurialサーバーを構成する
Mercurial Serverの構成ホームディレクトリは、 / var / lib / mercurial-serverにあります 。 .mercurial-serverファイルに興味があります。メインサーバーの設定が保存されるのはこのファイルです。 そこで、リポジトリへのパス、公開鍵を持つディレクトリなどを変更できます。 リポジトリが別のドライブに移動されたため、それに応じてリポジトリ変数を変更しました。
ユーザーは、 root (作成を含むすべてのリポジトリに対する完全な権限を持っている)とユーザー (プルおよびプッシュする権利を持っている)の2つのグループに分かれています。
サーバーにアクセスする必要があるユーザーのキーは/ etc / mercurial-server / keys / usersフォルダーに配置し、管理者のキーは/ etc / mercurial-server / keys / rootにする必要があります。
Hgadminの特別なリポジトリ
サーバーをインストールすると、hgadminサービスリポジトリが自動的に作成され、ユーザーと管理者のキーを保存できます。 これは非常に便利です ユーザーキーを手動で読み込む必要はありません。
構造はシステムの構造とまったく同じです。 キーは、ユーザーと管理者のそれぞれ/ hgadmin / keys / usersと/ hgadmin / keys / rootに保存されます。
そこで、ユーザーのアクセス権を管理するaccess.confファイルを保存できます。
最終セットアップ
デフォルトでは、hgユーザーにアクセスするためのキーは〜/ .ssh / authorized_keysに保存されているため、 / etc / ssh / keys /ディレクトリにシンボリックリンクを作成する必要があります。 これを行うには、次のコマンドを実行します。
ln -s /var/lib/mercurial-server/.ssh/authorized_keys /etc/ssh/keys/hg.pub
/ etc / mercurial-server / keysにキーを配置した後、アクセス権を更新する必要があります。これを行うには、次のコマンドを実行します。
sudo -u hg /usr/share/mercurial-server/refresh-auth
hgadminを使用してキーが追加された場合、変更は自動的に有効になります。
TortoiseHgを使用してリポジトリにアクセスする
まず、Pageantをダウンロードする必要があります。必要に応じてTortoiseHg秘密鍵を転送します。 便宜上、システムの起動時に実行されるbat'nikを作成しました。 その意味は、Pageantに秘密鍵を追加することです。
start pageant.exe node.ppk
ページェントを開始した後、残っているのはリポジトリを複製することだけです。
次のコマンドを使用して、特別なhgadminリポジトリを複製します。
hg clone ssh://hg@server/hgadmin
次のコマンドを使用して、新しいリポジトリを作成できます。
hg init ssh://hg@server/myrep