GitHub ActionsでSSH接続をする。

概要

GitHub ActionsでインスタンスにSSHして、任意のコマンドを実行する方法を説明します。

コード

name: SSH
# 手動実行用のトリガー
on: [ workflow_dispatch ]
jobs:
  ssh:
    runs-on: ubuntu-latest
    steps:
    - name: generate key
      run: |
        mkdir -p .ssh && chmod 700 .ssh
        echo "$SSH_KEY" > .ssh/id_rsa && chmod 600 .ssh/id_rsa
      env:
        SSH_KEY: ${{ secrets.ssh_key }}
    - name: ssh and command execution
      run: |
         ssh -t -t -o "StrictHostKeyChecking=no" -i .ssh/id_rsa $HOST "
         hostname
         "
      env:
        HOST: ${{ secrets.host }}

GitHub Actionsのsecretに、秘密鍵(secrets.ssh_key)とhost(secrets.host)を登録が必要です。
hostはユーザ名@ホスト名 の形で登録します。

例では、hostnameコマンドを実行しています。ここに実行したいコマンドを記載して行ってください。

-t -t は、模擬端末を割り当てるオプション、
-o "StrictHostKeyChecking=no" は、フィンガープリントの確認を省略するオプションです。

この記事が気に入ったらサポートをしてみませんか?