git clone как часть автоматической настройки экземпляра EC2?

git clone как часть автоматической настройки экземпляра EC2?

Я настраиваю экземпляр EC2 с Terraform, и мне нужно запустить большой скрипт во время этого процесса. Я хочу загрузить скрипт из нашего репозитория 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файла, который имеет правильные hostkeys. Вы можете скопировать записи из ваших собственных known_hosts, например, используяssh-keygen -F gitlab.something.org (это работает даже если файл был хеширован).

Файл может быть развернут либо в , ~/.ssh/known_hostsлибо в /etc/ssh/ssh_known_hosts.

Обратите внимание, что проверка ключа хостане являетсятам только для того, чтобы заставить вас подтвердить, что вы делаете; он там для подтверждения того, что то, что вы пытаетесь сделать, соответствует тому, что происходит на самом деле. Подобно HTTPS, он предназначен для защиты от внешних факторов, таких как атаки MITM — URL, который вы ввели, может быть на 100% правильным все время, но пакеты могут внезапно перенаправляться на неправильный сервер месяцы или годы спустя.

Связанный контент