7

私は次の設定をしています:

gitを備えたサーバー(centOS)と、同じサーバー上のプロジェクトのリポジトリ。

私がする必要があるのは、パスワードを要求されることなくリポジトリからプルできるようにすることです(煩わしいため)。

注:プルすると、rootとしてログに記録されます。

誰かがそれを手伝ってくれますか?

4

3 に答える 3

4

要件、特にセキュリティのニーズに応じて、いくつかのオプションがあります。HTTP と SSH の両方で、パスワードなしのアクセス、またはパスワードが必要なアクセスがあります。

HTTP

==============

パスワードレス

フェッチのみの要件に役立ちます。デフォルトでは、プッシュは無効になっています。匿名のクローン作成が意図されている場合に最適です。このタイプの構成では、プッシュを有効にしないでください。git-http-backend のマニュアル ページには、http://www.kernel.org/pub/software/scm/git/docs/git-http-backend.htmlにあるオンライン コピーの優れた情報が含まれています。これを提供するためにApacheを構成する方法の例を提供します。

.netrc または埋め込まれた URL のユーザー/パスワード

.netrc ファイルが次の形式で使用されている場所:

machine <hostname> login <username> password <password>

また、埋め込まれた URL は次の形式になります。

http://user:pass@hostname/repo

git は認証を行わないため、要求を git ツールに渡す前に、認証を実行するように apache などの Web サーバーを構成する必要があります。また、要求されている URL の一部であるため、https を使用する場合でも、埋め込みメソッドを使用するとセキュリティ上のリスクがあることに注意してください。

非インタラクティブにプルできるようにしたいが、匿名ユーザーが git リポジトリにアクセスできないようにしたい場合、基本認証に apache を使用し、資格情報を保存するために .netrc ファイルを使用することをお勧めします。ちょっとした落とし穴として、認証が使用されると git は書き込みアクセスを有効にするので、読み取り専用に匿名の http を使用するか、非対話型ユーザーが書き込みアクセスできないようにする場合は、追加の構成を実行する必要があります。 .

見る:

  • 基本認証の構成の詳細については、httpd.apache.org/docs/2.4/mod/mod_auth_basic.html
  • www.kernel.org/pub/software/scm/git/docs/git-http-backend.html には、必要な apache 構成の例がいくつかあります。


SSH

==============

パスフレーズレス

ssh 秘密鍵を入手できる人なら誰でも、このユーザーとしてリモートの git リポジトリを更新できるようになるため、セキュリティ上の問題が発生する可能性があります。これを非対話的に使用したい場合は、gitolite のようなものをインストールして、ssh 秘密鍵を持つ人がリポジトリからのみプルできるようにすることを少し簡単にすることをお勧めします。更新するには別の ssh キーペアが必要です。レポ。

gitolite の詳細については、github.com/sitaramc/gitolite/ を参照してください。

stromberg.dnsalias.org/~strombrg/ssh-keys.html - パスワードのない ssh キーの作成用: 複数の ssh キーの管理についてもカバーしたい場合があります: www.kelvinwong.ca/2011/03/30/multiple-ssh-private-キー識別ファイル/

パスフェーズ保護

ssh-agent を使用してセッションごとにロックを解除できますが、git からのインタラクティブなフェッチにのみ役立ちます。ルートについて言及し、「git pull」の実行についてのみ話しているため、ユースケースは非対話的であるように聞こえます。これは、gitolite (github.com/sitaramc/gitolite/) と組み合わせたほうがよいかもしれません。

概要

==============

gitolite のようなものを使用すると、SSH タイプのセットアップの多くの構成が抽象化されます。追加のリポジトリがある場合や、さまざまなレベルのアクセスを指定する必要があると思われる場合は、これをお勧めします。ロギングと監査も非常に便利です。

http 経由でプルできるようにしたいだけの場合は、git-http-backend の man ページに、必要な処理を実行するように apache を構成するのに十分な情報が含まれている必要があります。

クローン/プル用の匿名の http(s) と、フル アクセスに必要なパスフレーズで保護された ssh アクセスをいつでも組み合わせることができます。この場合、gitolite をセットアップする必要はありません。ssh 公開鍵を ~/. ssh/authorized_keys ファイル。

于 2012-08-14T13:50:26.743 に答える
2

この質問への回答を参照してください。HTTPS/GIT の代わりに SSH アクセスを使用し、SSH 公開鍵を介して認証する必要があります。これはローカルでも機能するはずです。

于 2012-08-14T06:51:02.993 に答える
1

ssh アクセスを使用している場合は、ssh エージェントを実行し、そこにキーを追加して、公開 ssh キーをリポジトリ エンドに登録する必要があります。その後、ssh キーが自動的に使用されます。これが推奨される方法です。

https アクセスを使用している場合は、次のいずれかを行います。

  • 資格情報を含む .netrc ファイルを使用するか、
  • https://user:pass@domain.tld/repoの形式でターゲット URL にユーザー/パスを提供します。

これら 3 つの方法のいずれでも、パスワードを要求する必要はありません。

于 2012-08-14T09:15:26.587 に答える