参照する回避策(単一の「ビルド」ユーザーを作成するか、id_rsa.REPONAME.pub
リポジトリごとに同じユーザーを共有する)で示されている唯一の理由は、次のとおりです。
別のユーザーの公開鍵/秘密鍵の共有は避けてください
あなたの状況(複数のプロジェクトを構築する)ではそうではありませんが、同じsshキーを再利用できるようにすると、2人の異なるユーザーが同じsshキーを共有する可能性があり、認証の目的が損なわれます。
認証とは、「特定のsshキーを使用するということは、誰がそれを使用しているかを知って
いるはずだということを意味するはずです」という意味です。
GitHubページの「デプロイキーの管理」では、sshを使用したさまざまなアカウントについて詳しく説明しています。
SSHエージェント転送:エージェント転送は、サーバーにSSHで接続してgitコマンドを実行するときに、ローカル開発マシンにすでに設定されているSSHキーを使用します。
サーバー上で実行されているかのように、リモートサーバーにローカルのssh-agentへのアクセスを選択的に許可できます。
したがって、サーバー上で秘密鍵を複製する必要はありません。
マシンユーザー:(これは「ダミーアカウント」戦略です)ユーザーアカウントにキーを添付します。このアカウントは人間が使用することはないため、マシンユーザーと呼ばれます。
ただし、このユーザーは人間と同じように扱い、通常のアカウントであるかのようにマシンのユーザーアカウントにキーを添付します。
アカウントの共同編集者またはチームに、アクセスが必要なリポジトリへのアクセスを許可します。
したがって、サーバーごとに1つずつ、1つの「マシンユーザー」に関連付けられた1つの秘密鍵。
(DHaは、コメントでデプロイキーの制限数を指摘しています。また、マシンユーザーアカウントは1つしか持てません)
- デプロイキー(GitHubリポジトリごとに1つ)サーバーに保存され、GitHub上の単一のリポジトリへのアクセスを許可するSSHキー。
このキーは、ユーザーアカウントではなく、リポジトリに直接添付されます。
アカウント設定に移動する代わりに、ターゲットリポジトリの管理ページに移動します。
「」に移動し、「Deploy Keys
」をクリックしますAdd deploy key
。公開鍵を貼り付けて送信します。
今回は、sshキーはユーザー(複数のリポジトリへのアクセスを許可できる)ではなく、1つのリポジトリに関連付けられています。複数の
リポジトリ
にsshアクセスを許可することは、「マシンユーザー」に相当します。
認証に関して:
- 複数のリポジトリに同じキーを使用することは、ユーザー(自分のアカウントに関連付けられたキーを持っている)によって行われる場合は問題ありません。
- 誰が何にアクセスしたかがまったくわからないため、複数のリポジトリに同じキーを使用することは、キーがリポジトリによってアタッチされている場合は問題ありません。
これは、「ユーザー」が多くのリポジトリの共同作業者として宣言されている「マシンユーザー」とは異なります。
ここ(Deploy key)には、「コラボレーター」はなく、リポジトリに直接sshアクセスが許可されているだけです。
Yusuf Bhabhrawalaは、コメントでこのモデルの制限をさらに示しています。
これらの非常に妥当なユースケース(プライベートpipモジュールを使用するPythonプロジェクトまたはプライベートnpmパッケージを使用するノードプロジェクト)を検討してください。どちらも同じ組織内の別のリポジトリからのものです。
現在、デプロイキーまたはアカウントキー(他のリポジトリが多すぎる)を使用して、この非常に単純なユースケースをデプロイする方法はありません。
そして、Chris Stenkampは、環境変数の設定を含む「 ' 'がsshキーを検索している場所を見つける方法pip install git+ssh://...
」を指摘しています。GIT_SSH_COMMAND