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

How to input a password in Travis CI while deploy to DigitalOcean via ssh

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

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

Link 到我的一个构建: https://travis-ci.com/KletskovG/kletksovg.tech/builds/132806624

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

期待"password"

发送"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 (gfgfddglebtravis@gmail.com)
+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 travis@kletskovg.tech:/var/www/kletskovg.tech
+git config user.name 'Travis CI'
+git config user.email gfgfddgleb@gmail.com
+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.
travis@kletskovg.tech's password: 

我该如何解决这个问题? 谢谢。

我只是在新的存储库中从头开始创建所有内容。 现在可以使用了。