Git credentials
===============

認証を必要とするGitリポジトリのクローンを作成できます。
:ref:`installing Postgres from source <Postgres source installation>` または :ref:`using `install_from_source` <Installing from source>` であり、ソースリポジトリが認証を必要とする場合、SSHキーベースの認証またはHTTPSのユーザー名/パスワードベースの認証を使用して、TPAでアクセスできます。

資格情報をターゲットインスタンスのディスクに書き込まずに認証するには、2つのオプションがあります。

-  ``ssh://``
   リポジトリの場合、SSHキーをローカルSSHエージェントに追加できます。
   ``--install-from-source`` ``config.yml``
   の\ ``forward_ssh_agent: yes``
   を使用する場合、エージェント転送はデフォルトで有効になっています。

-  ``https://`` リポジトリの場合、\ ``tpaexec deploy``
   を実行する前に環境で\ ``export TPA_GIT_CREDENTIALS=username:token``
   を実行できます。

..  Note::
   ホストからコンテナへのSSHアクセスが機能しないため、macOSのDockerコンテナはssh:// URLを使用できません。 https&#x3A;//リポジトリURLは正常に動作します。

SSHキー認証
-----------

SSHリポジトリのクローンを作成しており、SSHキーペア\ ``id_example``
および\ ``id_example.pub``
がある場合、SSHエージェント転送を使用してターゲットインスタンスで認証します。

-  **``ssh-agent`` をローカルで実行する必要があります**
   。デスクトップ環境がこれをまだ設定していない場合はほとんどが\ ``pgrep ssh-agent``
   で実行されているかを確認します ``ssh-agent bash``
   を実行して、エージェントを有効にして新しいシェルを一時的に起動します。次に、そのシェルから\ ``tpaexec deploy``
   を実行します。

-  ``ssh-add /path/to/id_example``
   プライベートキーファイルを使用して、必要なキーをエージェントに追加します*\*。

-  ``tpaexec provision`` の前に\ ``config.yml``
   のトップレベルで\ ``forward_ssh_agent: yes``
   を設定することにより、SSHエージェント転送を有効にします*\*。
   ``--install-from-source``
   を使用する場合、これはデフォルトで行われます。

展開中に、エージェントに追加したキーは、転送されたエージェント接続を介してリモートサーバーへの認証に利用できます。

SSHエージェント転送は注意して使用し、できればこの目的のために専用に生成された使い捨てキーペアを使用します。ターゲットサーバー上のエージェントのUnixドメインソケットにアクセスする権限を持つユーザーは、他のサーバーへの認証中にエージェントを組み込んでなりすましができます。

HTTPSのユーザー名/パスワード認証
--------------------------------

ユーザー名と認証トークンまたはパスワードを使用してHTTPSリポジトリのクローンを作成する場合は、\ ``tpaexec deploy``
の前に環境で\ ``export TPA_GIT_CREDENTIALS=username:token``
だけを作成します。デプロイメント中に、これらの資格情報は\ ``git clone``
または\ ``git pull``
タスクのみで利用できるようになります。これらはターゲットインスタンスのディスクに書き込まれません。
