Git credentials

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

これは、拡張機能をコンパイルしてインストールするためにpostgres_git_url を install Postgres from source または use `install_from_source <install_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 できます。

注釈

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 タスク(のみ)で使用できるようになります。ターゲットインスタンスのディスクには書き込まれません。