我正在使用 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 它没关系,我知道我在做什么,然后继续它?
使用您的自动化系统部署
known_hosts
具有正确主机密钥的文件。您可以从您自己的 known_hosts 复制条目,例如使用ssh-keygen -F gitlab.something.org
(即使文件已被散列,这也有效)。该文件可以部署在
~/.ssh/known_hosts
或/etc/ssh/ssh_known_hosts
。请注意,主机密钥验证不仅仅是为了让您确认自己在做什么;它可以确认您尝试做的事情与实际发生的事情相匹配。与 HTTPS 非常相似,它旨在防范 MITM 攻击等外部因素——您输入的 URL 可能一直 100% 正确,但数据包可能会在数月或数年后突然重新路由到错误的服务器。