web-dev-qa-db-ja.com

gitサーバーのSSHとHTTPの長所と短所は何ですか?

Gitサーバーをセットアップしたいのですが。私はいくつかのハウツーを見つけました。

Ssh経由でアクセス可能なgitサーバーのインストールについて説明しているものもあれば、HTTP経由でアクセス可能なものもあります。 (他のものはgitoliteのような道具を助言しさえします)。

SSHまたはHTTPを介して選択する長所または短所はありますか? HTTPではファイル転送がかなり遅いようですが、他に気をつけるべきことがあるのでしょうか。

もしあれば、gitサーバーをセットアップする最も一般的な方法は何ですか?

25

あなたが最も一般的な方法を尋ねている間、私はあなたの状況を見て、あるプロトコルが別のものを排除しないことを覚えた方がいいと思います -必要に応じて、後でアクセスプロトコルを追加します。

  • ほとんどの効率的で高速なのは、ネイティブGitデーモンを使用することです。ただし、提供される機能はほとんどありません。暗号化も認証もありません。リポジトリの公開読み取り専用ミラーに最適です。パフォーマンスが必要な場合は、OSに付属しているバージョンではなく、最新バージョンのインストールも検討してください。

  • ほとんどの互換性の方法はHTTPです。ネイティブGitほど効率的ではありませんが、それほど大きな違いはありません。 HTTPの最も重要なプロは、ファイアウォールの浸透とプロキシのサポートです。ほとんどのゲートウェイ/ファイアウォールでは、通常の他のHTTPトラフィックとして表示されます。

  • HTTPSの方がsecureですが、必然的に効率も低下します。かなりの設定が必要です。また、信頼できるTLS証明書も必要です。

  • 同様のセキュリティですが、よりよくある方法はSSHを使用することです。コマンドラインでプロトコルが指定されていない場合は、defaultです。 SSHを搭載し、強力な暗号化とパスワードおよびキー認証の両方を提供します。従来とは異なり、この方法でも匿名アクセスを許可することが可能です。

私のアドバイスはあなたのリポジトリのユースケースに依存します:

  • プライベートリポジトリと小規模なユーザーグループ:SSH

  • パブリックリポジトリ、任意の数のクローン、ただしプッシュ特権ユーザーの小グループ:HTTPおよびGit(フェッチのみ)+ SSH(+プッシュアクセス)

  • 上記のいずれか、ただし大量のプッシュ特権ユーザーの場合:おそらくGitの哲学を理解していません。

一部のパブリックネットワークまたは企業ネットワークは、GitおよびSSHトラフィックをブロックする場合があります。 anywhereから本当にリポジトリにアクセスする必要がある場合は、HTTPSとSSHの両方の使用を検討してください。

24
gertvdijk

リポジトリがパブリックである場合、クライアント側で簡単に使用できるため、読み取り専用アクセスにHTTPSを使用できます。そうでない場合は、SSHのみを使用する必要があります。いずれにせよ、SSHは認証管理が優れているため、書き込みアクセスにはSSHを使用する必要があります。

2