
それで私はギトライトセットアップは簡単です。しかし、1つ問題があります。SSH URLは の形式に従いますgit@host:repo
。私はビットバケット/ギットハブURLは の形式に従いますgit@host:user/repo
。後者の形式を取得する方法はありますか?ギトライト?
もう一つの質問です。~/.ssh/config
次のエントリでファイルを設定しました。
Host <host>
User <user>
IdentityFile <path/to/public/key>
ユーザーとして指定する設定はありませんgit
が、問題なくクローンできますgit@host:repo
。明らかに、私のsshクライアントは私の公開鍵を使用してサーバーにアクセスしているためです。ギトライトリポジトリのクローンを作成できるようになりましたが、SSH クライアントは、ユーザー用で<user>
はなくgit
ユーザー用にのみ設定されている公開キーを使用することをどのようにして認識するのでしょうか?
答え1
特定のコマンドにユーザーを制限することはgitoliteにとって非常に重要です。man sshd
authorized_keys ファイル形式を探すと、公開キー行に追加できるオプションが多数表示されます。これらのcommand=
オプションは、さまざまな方法で受信ユーザーを制限します。特に、「受信ユーザーが何を要求しているかに関係なく、代わりにこのコマンドを強制的に実行する」ことを意味するオプションに注意してください。また、authorized_keys ファイルに公開キー (つまり行) が多数ある場合、各行に異なるオプションと
command=
値のセットが含まれる場合があることに注意してください。この
command=
オプションを指定しないと、ssh デーモンは単にシェルを提供しますが、これは gitolite キーに必要なものではありません (ただし、シェルを取得するために使用する他のキーがある可能性もあります)。これがGitoliteの仕組みの根幹です。必ず理解してください。。
これらは、command=
公開鍵の名前をユーザー名として使用しています。
したがって、すべての ssh クエリは次のように実行されます。
- ユーザー git
- の command= ディレクティブのパラメータに名前が登録されている公開鍵
~git/.ssh/authorized_keys
。
に関してはuser/repos
、Gitoliteに最も近いのはワイルドレポとレポパターン。
repo CREATOR/a[0-9][0-9]