9

したがって、複数のサブモジュール(これもプライベート)を持つプロジェクト(プライベートリポジトリ)があります。プロジェクトを収容するAmazonEC2でホストされているサーバーがあり、プライベートGithubリポジトリを使用したいと思います。

メインプロジェクトのsshキーを生成し、プロジェクトのデプロイキーに追加しました。また、サブモジュールごとに追加のsshキーを生成し、それらのデプロイキーに追加しました。

(git @ githubを使用して)プロジェクトのクローンを作成しようとすると、機能しません。

許可が拒否されました(公開鍵)。致命的:リモートエンドが予期せずハングアップしました

各リポジトリとそのデプロイキーを再確認しましたが、すべて正しいようです。私が見逃している他の小さなステップはありますか?

4

1 に答える 1

8

簡単な答え: プライベート サブモジュールでデプロイ キーを使用する簡単な方法はありません。私の経験では、次の 2 つのオプションがあります。

  1. サブモジュールを使い続けるが、デプロイ キーの使用をやめ、代わりに、すべてのプライベート リポジトリへのアクセスを許可する単一のアカウント レベルの SSH キーを使用する (より簡単で安全性が低い)
  2. git cloneサブモジュールの使用を停止し、デプロイ キーの使用を継続し、デプロイキーと一致する SSH 秘密キーを手動で各リポジトリに渡します (トリッキーで、より安全です)。

これは、一度に 1 つの SSH 秘密鍵git cloneしか使用できない SSH 接続をトリガーするためです(例: ~/.ssh/id_rsa)。使用する SSH 秘密鍵は、リポジトリのデプロイ キーと一致する必要があり、デプロイ キーはプロジェクトごとに一意である必要があります。サブモジュールのクローンの場合、使用する秘密鍵は 1 つだけです。そのキーは最上位プロジェクトと一致する可能性がありますが、指定したエラーで子プロジェクトでは確実に失敗します。

これが役立つことを願っています..

于 2012-05-31T23:09:11.783 に答える