🌟

GitHub ActionsとSCPを使って、さくらのレンタルサーバにビルド結果をコピーする

2024/02/08に公開

概要

GitHub ActionsとSCPを使って、さくらのレンタルサーバにビルド結果をコピーする機会がありましたので、その備忘録です。

以下のGitHub Actionsを使用しました。

https://github.com/appleboy/scp-action

つまづいた点

以下の記法で試みたところ、ローカル環境でactを使った際にはうまく動作しましたが、GitHub Actionsで実行した際にはうまくいきませんでした。

name: scp files
on: [push]
jobs:

  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: copy file via ssh password
      uses: appleboy/scp-action@master
      with:
        host: ${{ secrets.HOST }}
        username: ${{ secrets.USERNAME }}
        password: ${{ secrets.PASSWORD }}
        port: ${{ secrets.PORT }}
        source: "tests/a.txt,tests/b.txt"
        target: your_server_target_folder_path

具体的には、以下のエラーが発生しました。

GitHub actions workflow error: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none password], no supported methods remain

こちらについて以下が参考になりました。

https://stackoverflow.com/questions/71850567/github-actions-workflow-error-ssh-handshake-failed-ssh-unable-to-authenticat

具体的には、以下のように、keypassphaseを用いることで、上記のエラーを回避することができました。

name: scp files
on: [push]
jobs:

  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: copy file via ssh password
      uses: appleboy/scp-action@master
      with:
        host: ${{ secrets.HOST }}
        username: ${{ secrets.USERNAME }}
        key: ${{ secrets.PRIVATE_KEY }}
        passphase: ${{ secrets.PASSPHRASE }}
        port: ${{ secrets.PORT }}
        source: "tests/a.txt,tests/b.txt"
        target: your_server_target_folder_path

まとめ

同様のことでお困りの方の参考になりましたら幸いです。

Discussion