自动部署 github 并通过 ssh return 执行 rsync 退出代码 255

Auto deploy github with action throug ssh return rsync exited with code 255

我想使用 ssh 将我的 NodeJS GitHub 项目部署到我的 VPs,所以我在 .github/workflows 中制作了这个脚本:

  
name: Node CI

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v1
    - name: Install Node.js
      uses: actions/setup-node@v1
      with:
        node-version: '10.x'
    - name: Install npm dependencies
      run: npm install
    - name: Run build task
      run: npm run build --if-present
    - name: Deploy to Server
      uses: easingthemes/ssh-deploy@v2.2.11
      env:
          SSH_PRIVATE_KEY: ${{ secrets.SSH_KEY }}
          ARGS: "-rltgoDzvO --delete"
          SOURCE: "/"
          REMOTE_HOST: ${{ secrets.HOST }}
          REMOTE_USER: ${{ secrets.USERNAME }}
          TARGET: ${{ secrets.FOLDER_TARGET }}
          EXCLUDE: "/dist/, /node_modules/"

我在我的秘密存储库密钥中输入了所有信息。 为了生成 ssh 密钥,我使用了这个命令: ssh-keygen -m PEM -t rsa -b 4096 不释义。 我已经在 SSH_KEY 值

中传递了 ~/.ssh/id_rsa` 字符串

但毕竟,当 运行 动作脚本时出现此错误:

Run easingthemes/ssh-deploy@v2.2.11
[general] GITHUB_WORKSPACE:  /home/runner/work/Litopia.fr/Litopia.fr
[SSH] Creating /home/runner/.ssh dir in  /home/runner/work/Litopia.fr/Litopia.fr
✅ [SSH] dir created.
[SSH] Creating /home/runner/.ssh/known_hosts file in  /home/runner/work/Litopia.fr/Litopia.fr
✅ [SSH] file created.
✅ Ssh key added to `.ssh` dir  /home/runner/.ssh/deploy_key
[Rsync] Starting Rsync Action: /home/runner/work/Litopia.fr/Litopia.fr// to ***@***:***
[Rsync] exluding folders /dist/,/node_modules/
⚠️ [Rsync] error:  rsync exited with code 255
⚠️ [Rsync] stderr:  Warning: Permanently added '***,82.65.27.189' (ECDSA) to the list of known hosts.
Permission denied, please try again.
Permission denied, please try again.
***@***: Permission denied (publickey,password).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(235) [sender=3.1.3]

⚠️ [Rsync] stdout:  
⚠️ [Rsync] cmd:  rsync /home/runner/work/Litopia.fr/Litopia.fr// ***@***:*** --rsh "ssh -p 22 -i /home/runner/.ssh/deploy_key -o StrictHostKeyChecking=no" --recursive --exclude=/dist/ --exclude=/node_modules/ -rltgoDzvO --delete
 1: 0x9da7c0 node::Abort() [/home/runner/runners/2.278.0/externals/node12/bin/node]
 2: 0xa4e219  [/home/runner/runners/2.278.0/externals/node12/bin/node]
 3: 0xba5d59  [/home/runner/runners/2.278.0/externals/node12/bin/node]
 4: 0xba7b47 v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*) [/home/runner/runners/2.278.0/externals/node12/bin/node]
 5: 0x13750d9  [/home/runner/runners/2.278.0/externals/node12/bin/node]

首先检查 easingthemes/ssh-deploy README 中提到的 public 关键部分是否已添加到接收部署的服务器上的 authorized_keys 文件中。

尝试使用

进行测试
ssh -Tv -i /home/runner/.ssh/deploy_key -o StrictHostKeyChecking=no $REMOTE_USER@$REMOTE_HOST

OP MrSolarius adds :

I have use my private key instead of my public key, so now it works.