
Я настраиваю экземпляр 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% правильным все время, но пакеты могут внезапно перенаправляться на неправильный сервер месяцы или годы спустя.