17

私はこれを何度も正しく設定しようとしても役に立たなかったので、苛立たしい口調を許してください(おそらく、おそらく私の無知が原因ですが、完全で簡潔なドキュメントがないためかもしれません)。

小さな開発者チーム間でコードを共有できるように、gitサーバーをセットアップしようとしています。各開発者は、複数のクライアントPCから接続できます。私は過去にMSから来たので、開発ツールセットに関して少し甘やかされていますが、TFSに似たものを手に入れることができれば素晴らしいと思います。

gitosis( https://serverfault.com/questions/225495/ubuntu-server-gitosis-user-naming-conventionに従ってgitコミュニティでは非推奨になっていることを理解しています)またはgitoliteのいずれかを設定しようとすると、次のように見えます。セットアップしたらすぐに、すべてがつまようじでバランスが取れているように見えるので、非常に注意する必要があります。

gitサーバーをセットアップする最近の試みには、公開鍵(benny.pub)をラップトップからサーバーに移動し、その公開鍵を使用してすべてを設定し、構成をプルダウンしてリポジトリとアクセス許可を設定することが含まれていました。その後、別のPCで開発したいと思ったので、新しいキー(benny@desktop.pub)を作成し、benny.pubの名前をbenny@laptop.pubに変更しました。これにより、明らかに問題が発生しました。これは私が名前を変えることによって私が愚かだったことを私が知っているところです。

長い説明の後の私の質問はこれです:セキュリティなどを維持しながら、複数の開発者が複数のマシンからログインできるようにする機能を備えた頑丈なセルフホストのgitサーバーを設定するにはどうすればよいですか?これを行うには、実証済みの手法が必要です(gitoliteはおそらく4〜5の異なる方法を説明しています...これもイライラします)。これとまったく同じことをしようとしているのは私だけではないと確信しています。たぶん、gitは私のチームに適していませんか?

どんな助けでも大歓迎です!

4

6 に答える 6

15

私の経験から、必要なのは、公開鍵の1つを使用して接続できる単一のgitアカウント/ログインを備えたSSHサーバーだけです。SSHを使用してgitoliteをインストールし(クライアントからサーバーにgitloiteをコピーし、基本的なセットアップを行います)、開発者に公開鍵を送信してもらいます。これらのキーをのgitolite-adminリポジトリに追加して~プッシュします。

複数のマシンが使用されている場合でも、開発者が最初に複数のキーペアを必要とするのはなぜですか?このような場合は、SSHが認証を処理する方法にも、gitoliteが承認を処理する方法にも影響しません。これらは引き続きSSHキーです。

  • 開発者が複数のキーペア(1つはgit用、もう1つは他のサーバー用)を使用する必要がある場合は、複雑さを処理し、使用するキーペアと~/.ssh/configサーバーの組み合わせごとにエントリを作成するようにアドバイスします。

  • 開発者が使用するマシンごとに異なるキーペアを使用している場合、gitoliteグループはいくつかの公開キーを組み合わせることができます。

@agross = agross-1 agross-2
于 2011-04-10T00:12:35.060 に答える
4

いくつかの指針:

ScottChaconのprogitbookのサーバー上のgitに関するセクション

GitoriousはFOSSです

于 2011-04-09T20:49:13.020 に答える
2

リポジトリを作成してユーザーを追加するためのWebベースのUIを備えたオープンソースのgitホスティングソリューションがいくつかあります(GitHub:FIなど)...アクセスの制限についてはわかりませんが、次のようになります。

HTH

于 2011-04-10T18:12:43.640 に答える
2

私は仕事でgitosis設定を維持しており、開発者が複数のsshキーを持っている場合、私がしなければならないのはこれらすべてのキーを同じkeydir/user.pubファイルに入れることだけです。

したがって、すべてのキーを連結して、keydir/benny.pubすべて設定する必要があります。

于 2011-04-09T20:25:17.587 に答える
1

私はサーバー上にアカウントを持っているすべての開発者と一緒にdebianを使用しています。私は秘密鍵ログインでsshを使用します。最後に、開発者はssh://username@example.com/git-repo/repo.gitのようなURLを使用してチェックアウトするか、いずれの場合もリポジトリでgitと対話する必要があります。

于 2011-04-09T20:09:48.190 に答える
0

問題は、sshクライアント(WindowsまたはLinuxバージョン)がキーファイルを見つけられないことだと思います。私は同じ問題を抱えていて、このように解決しました:

  • 私のノートブックでは、〜/ .sshフォルダー(〜はホームフォルダーです。Windowsのバージョンは%HOME%env)にキーファイル(rafael.nicoletti@mycorporation)を生成しました。
  • 〜/.sshに次の内容のファイル名configを追加しました。

    IdentityFile ~/.ssh/rafael.nicoletti@corporation

gitサーバーにアクセスしたいすべての場所で、それらのファイルを%HOME%フォルダーにコピーするだけです。

このようなものを設定ファイルに入れることもできます:

IdentityFile /d/identity.key
IdentityFile /e/identity.key
IdentityFile /f/identity.key
IdentityFile /.../identity.key

したがって、構成はリムーバブルメディアでキーを探します。

于 2012-01-27T02:57:12.683 に答える