У меня есть среда Gitlab, использующая Gitlab CI, для нового проекта для проверки скомпилированных файлов и копирования через rsync на рабочий сервер.
Машина, на которой сборка этих ресурсов - exec, является образом docker (узел 6), но теперь мне нужно скопировать полученные файлы из этой команды Docker контейнера на сервер, используя Linux ... Моя проблема - подключиться через ssh через Rsync.
В настоящее время у меня есть следующее:
stages:
- deploy
before_script:
- npm i
- npm run build
job_deploy:
stage: deploy
script:
- ssh-keygen -t rsa -b 4096 -C '' -f ~/.ssh/deploy_rsa
- ssh-keyscan -H 8.8.8.8 >> ~/.ssh/known_hosts
- ssh-copy-id -i ~/.ssh/deploy_rsa.pub $SERVER_USER@8.8.8.8
- rsync -avuz $CI_PROJECT_DIR/dist/ $SERVER_USER@8.8.8.8:/var/wwww/example.com
only:
- master
По этому я получаю:
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
3
Есть кое-что, что я не понимаю здесь: вы генерируете новый ключ ssh на лету, каждый билд не так? Где смысл использовать ssh-ключи, когда вам нужен pwd для развертывания ключа pub?
—
lrkwz
Как и @lrkwz, я также упускаю смысл посылать новый ключ при каждой сборке, когда вас все равно попросят ввести пароль. Кроме того, я хотел бы видеть файл
—
Fábio Duque Silva