2017-06-10 7 views
2

Git updateフックでは、更新されているブランチがマスターであるかどうかをチェックし、そうであればクライアントにエラーメッセージを送信します。私は今それを作るようにしたいですpush私は自分自身を作るマスターに渡すでしょう。GitフックでクライアントのSSHフィンガープリントを調べる方法

現在、ユーザーのauthorized_keysに2つのSSHキーが追加されています。gitそのうちの1つは私のものであり、私は他のものを追加するつもりです。あなたは誰もが公開鍵認証を経由して(「gitの」のような)単一のユーザーとの接続を許可している場合、あなたはそのユーザーに接続しているユーザーを決定するシェルラッパーを与える必要があり

:私はhereを読みますそれに応じて環境変数を設定します。

しかし、それはどのように行うのか説明していないので、そのようなことの例は見つけられません。あなたはどのようにSSHのマシンの指紋を決定するのですか?別の "git-admin"ユーザーアカウントを作成することも考えましたが、裸のreposは/ home/gitディレクトリにあり、両方のユーザーが同じURLを使って同じリポジトリにアクセスする方法は考えられませんでした。 authorized_keysが両方に適用されるため、ユーザーに同じホームディレクトリを共有させることはできません。その環境変数のみを設定する方法はありません。

私のサーバーはFreeBSD上で動作しています。

私がしようとしていることを達成する方法についての考えはありますか?

答えて

1

これは、あなたはどちらかssh forced command, and is used for instance by gitolite

可能性が呼び出されます。

  • は、そのネイティブのSSH機能を利用して、書き込み(プッシュ)を制限することができ、サーバー側でgitoliteをインストールし、特定の支店へのアクセス。
    authorization layerおよびyou can test for access for specific branchesです。

    if gitolite access -q reponame username W master 
    then 
        ... 
    
  • たり~/.ssh/authorized_keysが強制的にコマンドを追加する変更は、それはあなたを特定し、コマンドを通すと、そのコールに関与するキーをテストすることができます任意ののSSH呼び出しに呼び出されたスクリプトです。
    「のsshコマンドを強制的に」何を意味し(それはGitのとは関係ありません)

+0

それは私がこの機能はからアクセスしてきた可能性が場所を見られないただろう決して:)働いていました!ありがとうございました! – papiro

+0

私は実際に 'environment ='オプションを使いました。私はUSER環境変数をキーの所有者の名前に設定しました。 – papiro

+0

うまくやった。それはうまくいくはずです。 – VonC

関連する問題