appleboy/ssh-action
を使用したSSH接続
GitHub Actions上でSSH接続するためにappleboy/ssh-action
を利用します。
以下のワークフローを作成し、リモートサーバーにSSH接続して git pull
を実行します。
name: Deploy to Remote Server
on:
push:
branches:
- main # デプロイをトリガーするブランチ
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Execute remote SSH commands
uses: appleboy/ssh-action@v1.2.0
with:
host: ${{ secrets.REMOTE_SERVER_HOST }}
username: ${{ secrets.SSH_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
port: 22
script: |
cd /path/to/your/project
git pull origin main
GitHub Secretsの設定
SSH接続に必要な情報をGitHubリポジトリのSecretsに登録します。
- GitHubでリポジトリのSettingsに移動
- [Security] → [Secrets and variables] → [Actions] を選択
- [New repository secret] をクリックし、以下のシークレットを追加
シークレット名 | 内容 |
---|---|
REMOTE_SERVER_HOST |
リモートサーバーのホスト名またはIPアドレス |
SSH_USER |
SSH接続用のユーザー名 |
SSH_PRIVATE_KEY |
ECDSA秘密鍵の内容 |
SSH_PRIVATE_KEY
には、ローカルで作成したECDSA秘密鍵の内容を貼り付けます。
この情報はGitHub Actions内でのみ使用され、ログには出力されません。
注意点
appleboy/ssh-action
は パスフレーズ付きのECDSA秘密鍵には対応していません。
もしパスフレーズ付きの鍵を使用すると、認証エラーが発生します。
対策として、パスフレーズなしのECDSA鍵 を作成して使用してください。
またshimataro
などはECDSAに対応していないので注意が必要です。