travis-ci.org에 코드를 제출한 후 내 github 프로젝트에 다음 오류가 발생합니다.
Deploying application
on master ✓
domain: <mydomain> ✓
site path: /srv/http/webapps/Main ✓
zipping _site to site.zip...
decrypting ssh key...
bad magic number
Script failed with status 1
failed to deploy
나는 내가 인계하고 유지하려고 했던 프로젝트를 작성자에 의해 살해되었기 때문에 포크했고, 그것은 부끄러운 일이라고 생각했습니다. 프로젝트는 travis를 사용하여 사이트를 업데이트합니다. 저는 Travis를 처음 접했고 암호화를 우회한 적이 없으며 실제로 웹사이트를 구축한 적도 없기 때문에 제가 무엇을 하고 있는지 전혀 모릅니다.
저는 이 목적으로 세 대의 컴퓨터를 사용합니다. 내 자신의 개발 컴퓨터와 이를 호스팅하는 사이트.
내 생각에 관련 파일은 다음 .travis.yml
과 같습니다..deploy/deploy.sh
.deploy/deploy_key.enc
내가 한 일은 다음과 같습니다.
sudo ssh root@UBS-main
cd /srv/http/webapps/Main
nano .travis.yml (removing env.global.secure line)
ssh-keygen -t rsa -b 4096 -C '[email protected]' -f ./deploy_key
travis encrypt-file deploy_key --add
travis encrypt MY_SECRET_ENV=<pass> --add env.global
rm deploy_key
scp /srv/http/webapps/Main/deploy_key.enc folatt@UBS-Dev:~/workspace/UBS/UBS-site/deploy/deploy_key.enc
scp /srv/http/webapps/Main/.travis.yml folatt@UBS-Dev:~/workspace/UBS/UBS-site/.travis.yml
이것은 내가
- SSH 키를 생성해야 합니다
- travis를 사용하여 키를 암호화합니다.
- 일종의 비밀 비밀번호가 필요하신가요? Travis를 다시 사용하십시오.
- 암호화되지 않은 키를 삭제합니다.
- 키 및 트래비스 파일을 개발 머신 저장소로 이동합니다.
- 그런 다음 변경 사항을 github에 커밋합니다.
.travis.yml
language: ruby
sudo: false
rvm:
- 2.2
env:
global:
- domain: <mydomain> (changed)
- site_path: /srv/http/webapps/Main (changed)
- secure: <bunch of encrypted code> (changed)
before_script:
- npm install -g bower
- bower install
script: bundle exec jekyll build
deploy:
provider: script
skip_cleanup: true
script: "./deploy/deploy.sh"
on:
branch: master
./deplay/deploy.sh
#!/usr/bin/env bash
set -e
if [ ! "env:$TRAVIS_BRANCH" == "env:master" ]; then
echo not on master, not deploying
exit 0
fi
echo "on master ✓"
if [ -z "$domain" ]; then
echo "domain" variable not set
exit 1
fi
echo "domain: $domain ✓"
if [ -z "$site_path" ]; then
echo "site_path" variable not set
exit 1
fi
echo "site path: $site_path ✓"
echo "zipping _site to site.zip..."
(cd _site/ && zip -r - .) > site.zip 2>/dev/null
echo "decrypting ssh key..."
openssl aes-256-cbc -k "$deploy_key_pass" -in deploy/deploy_key.enc -out deploy/deploy_key -d
chmod 400 deploy/deploy_key
echo "setting StrictHostKeyChecking for all domains..."
printf "Host *\n StrictHostKeyChecking no\n" > ~/.ssh/config
chmod 400 ~/.ssh/config
echo "copying site to $domain..."
scp -i deploy/deploy_key site.zip deploy@$domain:~/site.zip
ssh -i deploy/deploy_key deploy@$domain 'rm -rf "'$site_path'"/* && unzip ~/site.zip -d "'$site_path'" && rm ~/site.zip'
답변1
키를 다르게 해독해야 하고 잘못된 매직 넘버가 사라지는 문제를 해결했습니다.
openssl aes-256-cbc -K $encrypted_<...>_key -iv $encrypted_<...>_iv -in deploy_rsa.enc -out /tmp/deploy_rsa -d
여기서 합계는 $encrypted_<...>_key
에 $encrypted_<...>_iv
의해 생성됩니다
travis encrypt-file deploy_rsa --add
.