
Terraform を使用して EC2 インスタンスをセットアップしていますが、このプロセス中に大きなスクリプトを実行する必要があります。次のような内容のスクリプトを GitLab リポジトリからダウンロードしたいと考えています。
git clone [email protected]:a_name/project.git
Cloning into 'project'...
The authenticity of host 'gitlab.something.org (12.34.56.78)' can't be established.
ECDSA key fingerprint is SHA256:....
Are you sure you want to continue connecting (yes/no)? yes
Cloning into ...
コマンドラインからこれを実行する場合は確認する必要がありますが、私の状況ではこれは不可能です。
ただし、/var/log/cloud-init-output.log
正しい秘密鍵をアップロードした後、次のメッセージが表示されます。
Cloning into 'project'...
Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
このエラーは単に「はい」で応答しなかった結果であることを願っています。git に、問題ないこと、自分が何をしているのかわかっていること、そのまま続行することを伝える方法はあるでしょうか?
答え1
自動システムを使用して、known_hosts
正しいホストキーを持つファイルを展開します。独自のknown_hostsからエントリをコピーすることができます。たとえば、ssh-keygen -F gitlab.something.org
(ファイルがハッシュ化されている場合でも機能します)。
ファイルは または~/.ssh/known_hosts
のいずれかにデプロイできます/etc/ssh/ssh_known_hosts
。
ホストキーの検証にはない自分が何をしているのか確認するためだけに存在します。つまり、自分がしようとしていることと実際に起こっていることが一致していることを確認するためです。HTTPS と同様に、MITM 攻撃などの外部要因から保護することを目的としています。つまり、入力した URL は最初から 100% 正しいかもしれませんが、数か月または数年後にパケットが突然間違ったサーバーに再ルーティングされる可能性があります。