Github action use SSH to access remote host and execute a script

In this article, we will use 6 steps to illustrate how to use Github action to access a remote server and execute the shell script. So that’s getting started:

step 1. Generate keygen in local machine

In your local machine, execute the following command in the terminal and generate your ssh-keygen.

ssh-keygen -f ~/.ssh/yourhost -t ed25519 -b 4096 -C "youremail@example.com"

step 2. Copy our public key to the remote server’s authorize

# goto remote server

echo "your public keygen content" >> .ssh/authorized_keys

step 3. copy our Private Key and paste it into Github Secrets.

Go to “Settings” > “Secrets”, and click “New repository secret” button.

HOST: your host address KEY_ED25519: past your private keygen content PORT: your ssh port, default is 22 USERNAME : your ssh login username

step 4. create github action workflows ymal

Go to the “Actions” tab, and click “New workflow” button

past fellow code

name: remote ssh command
on: [push]
jobs:

  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
    - name: executing remote ssh commands using ssh key
      uses: appleboy/ssh-action@master
      with:
        host: ${{ secrets.HOST }}
        username: ${{ secrets.USERNAME }}
        key: ${{ secrets.KEY_ED25519 }}
        port: ${{ secrets.PORT }}
        script: sh yourscript.sh

step 5. create your script

Go to your server and create the shell script file

Here, we create a bash that will generate a hellofile and include helloworld.

 #!/bin/bash
echo 'helloworld' > hellofile.txt

Step 6. pull your workflow and re-push

Pull your workflow and try to push ~

Finally, go to “Actions” and check workflow runs with the green line. If yes, the file should be created on the remote server.

Congradurations~ you already learn how to use github action.