Erro de número mágico ruim com travis

0

Eu recebo o seguinte erro para meu projeto do github depois de confirmar meu código no travis-ci.org:

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

Eu bifurquei um projeto que estou tentando assumir e manter enquanto o projeto está sendo descontinuado pelo autor, o que acho uma vergonha. Este projeto usa travis para atualizar seu site. Eu não estou familiarizado com os travis, nunca citei criptografia e, na verdade, nunca configurei um site antes, então estou completamente sem noção do que estou fazendo.

Estou usando três computadores para conseguir isso. Eu mesmo, um computador de desenvolvimento e o site que hospeda um.

Os arquivos que considero relevantes são .travis.yml , .deploy/deploy.sh e .deploy/deploy_key.enc

O que eu fiz foi o seguinte:

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

Isto está assumindo que eu

  1. precisa criar uma chave ssh
  2. Criptografar essa chave usando travis.
  3. Precisa de algum tipo de senha secreta? usando o travis novamente.
  4. remova a chave não criptografada.
  5. Mova a chave e o arquivo travis para o repositório do computador de desenvolvimento.
  6. E, em seguida, confirme as alterações no 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'
    
por Folatt 12.05.2017 / 08:38

1 resposta

0

Resolvido até o momento em que a chave teve que ser decifrada de forma diferente e o número da magia negra desapareceu.

openssl aes-256-cbc -K $encrypted_<...>_key -iv $encrypted_<...>_iv -in deploy_rsa.enc -out /tmp/deploy_rsa -d

Em que $encrypted_<...>_key e $encrypted_<...>_iv são gerados por travis encrypt-file deploy_rsa --add .

Veja link

    
por 15.05.2017 / 07:34