如何通过ssh部署到DigitalOcean时在Travis CI中输入密码

问题描述 投票:0回答:1

我正在从我的github仓库到Digital Ocean Droplet设置CI。按照互联网上的说明,我创建了SSH密钥,对其进行加密并配置我的.travis.yml文件

但是在Job Travis期间,需要密码才能将代码部署到Droplet。

链接到我的一个版本:https://travis-ci.com/KletskovG/kletksovg.tech/builds/132806624

我尝试在bash中安装Expect软件包,并像这样写入我的deploy.sh脚本:

期望“密码”

发送“ My_droplet_user_password”]

我的.travis.yml配置


language: node_js

node_js:
  - 10

notifications:
  email: false

addons:
  ssh_known_hosts:
    - kletskovg.tech

before_install:
  - openssl aes-256-cbc -K $encrypted_89e65714f577_key -iv $encrypted_89e65714f577_iv -in travis_rsa.enc -out travis_rsa -d
  - chmod 600 travis_rsa
  - mv travis_rsa ~/.ssh/id_rsa
  - sudo apt-get install -y expect

install:
- cd client
- npm i webpack-cli -g
- npm i

before_script:
  - echo -e "Host kletskovg.tech\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
  - echo -e "Host github.com\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config

script:
  - npm test

deploy:
  provider: script
  skip_cleanup: true
  user: travis
  password:  TravisDeploy02
  script: cd ../ && chmod +x ./deploy.sh && ./deploy.sh
  on:
    all_branches: true
#
#after_success:
#  - bash ./deploy.sh

部署时的代码:

Deploying application
+echo '#### DEPLOY ####'
#### DEPLOY ####
+'[' master == master ']'
++ssh-agent -s
+eval 'SSH_AUTH_SOCK=/tmp/ssh-zAgy7iJpDFB6/agent.7731; export SSH_AUTH_SOCK;
SSH_AGENT_PID=7732; export SSH_AGENT_PID;
echo Agent pid 7732;'
++SSH_AUTH_SOCK=/tmp/ssh-zAgy7iJpDFB6/agent.7731
++export SSH_AUTH_SOCK
++SSH_AGENT_PID=7732
++export SSH_AGENT_PID
++echo Agent pid 7732
Agent pid 7732
+ssh-add /home/travis/.ssh/id_rsa
Identity added: /home/travis/.ssh/id_rsa ([email protected])
+echo TRYING TO DEPLOY
TRYING TO DEPLOY
+git init
Reinitialized existing Git repository in /home/travis/build/KletskovG/kletksovg.tech/.git/
+git remote add deploy [email protected]:/var/www/kletskovg.tech
+git config user.name 'Travis CI'
+git config user.email [email protected]
+git add .
+git commit -m Deploy
[detached HEAD 4561161] Deploy
 2 files changed, 42 insertions(+)
 mode change 100644 => 100755 deploy.sh
+git push --force deploy master
Warning: Permanently added the ECDSA host key for IP address '138.68.30.170' to the list of known hosts.
[email protected]'s password: 

我该如何解决?谢谢。

ssh travis-ci digital-ocean
1个回答
1
投票

我只是在新的仓库中从头开始创建所有内容。现在可以正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.