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

このページでは、認証が必要なGitリポジトリのクローンを作成する方法について説明します。

これは、 ``postgres_git_url``
を :ref:`install Postgres from source <Postgres source installation>` または :ref:`use `install_from_source` <Installing from source>` に変更して拡張機能をコンパイルしてインストールするときに必要になる場合があります。

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

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

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

..  Note::
   macOS上のDockerにデプロイする場合、この環境のホストからsshでDockerコンテナにアクセスできないため、 `https://` リポジトリ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``
タスク（のみ）で利用できるようになります。ターゲットインスタンスのディスクには書き込まれません。
