0

Mercurialリポジトリを使用してコードが維持されているcentosサーバーがあります。新しい人がMercurialにコードをコミットできるようにするために、私は新しいユーザーを作成し、それらをwebdevグループに追加します。そして、彼らはコードをプッシュ/プルできます。

hg pull ssh://name@server.com. 

ただし、新しいユーザーにアクセスさせたくないファイル(構成ファイル)がいくつかあります。Mercurialはこれらのファイルを追跡しないように求められているため、これらのファイルにアクセスする唯一の方法は、システムにSSHで接続してファイルを確認することです。これは、新しいユーザーに実行してほしくないことです。

基本的に、新しい開発者には、hgを介してファイルをプル/プッシュするだけで、システムに直接SSH接続することはできません。これを行うための最良の方法は何ですか?ファイルへのsshアクセスを提供せずに、リポジトリへのhgアクセスを提供できますか?

(または問題への私のアプローチに欠陥がありますか?)

ありがとう!

4

2 に答える 2

2

承認レイヤー(GitのGitoliteと同様)に関しては、Mercurialサーバーがあります( Mercurial軽量Webサーバーhgserveと混同しないでください) 。

mercurial-serverSSH公開鍵認証を使用して、開発者に一元化されたMercurialリポジトリへのリモート読み取り/書き込みアクセスを提供します。便利できめ細かいキー管理とアクセス制御を提供します。

こちらのリポジトリをご覧ください。

これは、 Ry4an回答で言及したスクリプトと同じSSH強制コマンドメカニズムに基づいています(すでにMercurialにパッケージ化されているため、回答に+1が付けられています)。 説明のために、の「mercurial-server」ソースを参照してください。
refreshauth.py

于 2012-04-16T11:16:19.647 に答える
2

commandこれは、ファイルで利用可能なオプションを利用することで、非常に簡単に実行でき.ssh\authorized_keysます。そのファイルでキーアクセスを許可する場合、キーの前に「command = ....」引数を追加できます。これが、実行できる唯一のコマンドです。

Mercurialには、まさにそれを行うための便利なスクリプトが付属しています。内部に指示があります:

https://www.mercurial-scm.org/repo/hg/file/tip/contrib/hg-ssh

于 2012-04-16T16:55:57.883 に答える