Git credentials#

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

これは、 postgres_git_url を Postgres source installation または ソースからのビルドとインストール に変更して拡張機能をコンパイルおよびインストールする場合に必要になる場合があります。

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

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

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

注釈

この環境ではホストからsshでDockerコンテナにアクセスできないため、macOSで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 タスクのみで利用できるようになります。これらはターゲットインスタンスのディスクに書き込まれません。