Deployment, Gitlab: Host key verification failed
Очень распространённая ошибка при запуске процесса деплоймента с использованием CI/CD. Я использую GitLab, но это относится к любым пайплайнаторам.
Вообще-то, это относится к пакету ssh, и именно он сообщает, что происходит соединение с каким-то странным, ранее неизвестным сервером.
Ок, решения три:
- "Познакомиться" с сервером перед соединением.
- Передавать настройку "забей" в момент запуска команды ssh.
- Записать настройку в конфиг ssh, которая будет говорить пакету: "Не парься, всё норм. Соединяйся со всеми серверами".
Второй и третий варианты обсосаны до дыр и всем известны, а кому не известны, те легко могут найти их по запросу Host key verification failed. С моей точки зрения, они выглядят не эстетично в контексте выполнения команд в Docker.
Судите сами.
- Знакомимся с сервером
bash
mkdir -m 700 -p ~/.ssh
ssh-keyscan -t rsa example.com >> ~/.ssh/known_hosts
ssh root@example.com 'bash --login -s' < deploy.sh- Отключаем проверку во время запуска ssh-команды
bash
ssh -o StrictHostKeyChecking=no root@example.com 'bash --login -s' < deploy.sh- Просто выключаем проверку
bash
echo "StrictHostKeyChecking no" >> /etc/ssh/ssh_config
ssh root@example.com 'bash --login -s' < deploy.shВсе три имеют право на жизнь, но лично мне нравится третий.