Я настроил работу докера Gitlab CI для развертывания блога пеликанов с помощью rsync+ssh. Проблема в аутентификации.
Для этого я создал пару ключей ssh. Добавили их в качестве секретных переменных в проект Gitlab и добавили открытый ключ на сервер развертывания в качестве авторизованного ключа. В задании на развертывание я копирую секретный ключ в /root/.ssh/id_rsa
и пробую rsync
однако это не удается с:
rsync -e "ssh -p 22" -P -rvzc --delete /builds/www/site/output/ root@mydomain:/var/www/blog --cvs-exclude
Host key verification failed.
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(226) [sender=3.1.1]
Задание развертывания определяется следующим образом:
image: ubuntu:latest
variables:
GIT_SUBMODULE_STRATEGY: recursive
deploy:
tags:
- linux
only:
- production
before_script:
- apt-get update -qq && apt-get install -y -qq rsync python3 python3-venv python3-wheel python3-dev make gcc libssl-dev openssh-client
- python3 -m venv site-venv
- source site-venv/bin/activate
- pip install --upgrade pip
- pip install -r requirements.txt
- mkdir -p $HOME/.ssh
- echo $ID_RSA > $HOME/.ssh/id_rsa
- echo $ID_RSA_PUB > $HOME/.ssh/id_rsa.pub
script:
- make publish
- make deploy
Почему ключ не принят? Контейнер Docker имеет открытый и закрытый ключи, сервер имеет открытый ключ в авторизованных ключах. Есть ли какие-то детали, которые мне не хватает?