Deployment, Gitlab: Host key verification failed

Опубликовал Максим Баев, 09 августа 2019, 13:09

Очень распространённая ошибка, при запуске процесса деплоймента с использованием CI/CD. Я использую GitLab, но это относится к любым пайплайнаторам..

Вообще-то, это относится к пакету ssh и именно он сообщает, что происходит соединение с каким-то странным, ранее неизвестным сервером.

Ок, решения три:

  1. Познакомиться с сервером перед соединением.
  2. Передавать настройку забей в момент запуска команды ssh
  3. Записывать эту же настройку в конфиг ssh, которая будет говорить пакету Не парься, всё норм. Соединяйся со всеми серверами.

Второй и третий варианты обсосаны до дыр и всем известны, а кому не известны, те легко могут найти их по запросу Host key verification failed. С моей точки зрения, они выглядят не эстетично, в контексте выполнения команд в докере. Судите сами:

  1. Знакомимся с сервером

    mkdir -m 700 -p ~/.ssh
    ssh-keyscan -t rsa example.com >> ~/.ssh/known_hosts
    ssh root@example.com 'bash --login -s' < deploy.sh
    
  2. Отключаем проверку во время запуска ssh команды

    ssh -o StrictHostKeyChecking=no root@example.com 'bash --login -s' < deploy.sh
    
  3. Просто выключаем проверку

    echo "StrictHostKeyChecking no" >> /etc/ssh/ssh_config
    ssh root@example.com 'bash --login -s' < deploy.sh
    

Все три имеют право на жизнь, но лично мне нравится третий.

Другие посты