トラビスのマジックナンバーエラーが間違っています

トラビスのマジックナンバーエラーが間違っています

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に初めて触れ、暗号化を迂回したことがなく、実際にウェブサイトを構築したこともないので、私が何をしているのか全く分かりません。

私はこの目的のために3台のコンピュータを使います。私自身の開発コンピュータとそれをホストするサイト。

私の考えでは、関連ファイルは次.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

これは私です

  1. SSHキーを生成する必要があります
  2. travis を使用して鍵を暗号化します。
  3. 一種の秘密のパスワードが必要ですか? Travisを再利用してください。
  4. 暗号化されていない鍵を削除します。
  5. キーとトラビスファイルを開発マシンストアに移動します。
  6. 次に、変更を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

バラよりhttps://oncletom.io/2016/travis-ssh-deploy/

関連情報