0

同じボックスにあるGitoliteサーバーに接続するために、Jenkinsのユーザーを追加しようとしています(ただし、ローカルユーザーは同じ問題を起こすと思います)。

  • Jenkins の SSH キーを生成しました。
  • Gitolite の設定に公開鍵を追加しました。
  • Jenkins を使用して、localhost サーバーで SSH に接続できます。
  • SSH を使用して Gitolite に接続しています

たとえば、次のように動作します

sudo su jenkins
ssh localhost

しかし、以下は機能しません:

sudo su - jenkins
git clone jenkins@localhost:my-repo

いつも言ってる

空のリポジトリのクローンを作成したようです

しかし、以下は機能します:

sudo su - jenkins
git clone gitolite@localhost:my-repo

うまくいかない理由がわかったと思いますが、代替手段があるかどうか知りたいです。

gitolite の .ssh フォルダー内に、「コマンド」とジェンキンスの公開鍵を含むauthorized_keys ファイルがあります。これは、gitolite を使用するように正しいシェルを設定するためだと思います。ただし、Jenkins の ~/.ssh フォルダー内には、authorized_keys もあります

ユーザー「jenkins」を使用してgitoliteに接続しようとすると、gitoliteリポジトリの代わりにjenkinsの「ホーム」が使用されるため、Jenkinsのホーム内のリポジトリを見つけようとしていると思います。

Jenkins (Gitolite サーバーと同じボックスにあります) を使用して、この問題なく gitolite に接続する方法はありますか?

4

1 に答える 1

0

URL の先頭にある gitolite@ は、SSH で使用するため、実際にはユーザーではありません。これはサーバー上のサービス (だと思います) であるため、gitolite@localhost:my-repo は完全に有効です。

GIT を使用していると、常に git@ への参照が表示されます。あなたのサービスは gitolite であるため、常に gitolite@ が使用されます。

Git サーバーは SSH 公開鍵を使用して認証するため、作成した鍵によってユーザーはサーバーに接続できます。そのキーはそのユーザーにも関連しているため、そのキーが使用されると、コミットなどの git コマンドを発行しているユーザーであると見なされます。

余談ですが、私が最初に GIT システムを使い始めたとき、同僚がhttp://documentup.com/skwp/git-workflows-bookを勧めてくれました。これは、この本当に素晴らしいバージョン管理システムを理解する上で大きな助けになりました。

于 2013-10-16T04:00:22.360 に答える