.
ssh-keygen -t rsa -b 4096 -f ~/.ssh/github
Your identification has been saved in /root/.ssh/github <= this is SSH_PRIVATE_KEY
Your public key has been saved in /root/.ssh/github.pub <= this is public key
sudo nano ~/.ssh/authorized_keys <= public key goes here
Secrets and variables (on repository page)
Actions secrets SSH_PRIVATE_KEY+ SSH_HOST + SSH_USER
name: Deploy process
on:
push:
branches:
- master
jobs:
deploy:
name: Deploy
runs-on: ubuntu-latest
steps:
- name: Configure SSH
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
SSH_HOST: ${{ secrets.SSH_HOST }}
SSH_USER: ${{ secrets.SSH_USER }}
run: |
mkdir -p ~/.ssh/
echo "$SSH_PRIVATE_KEY" > ~/.ssh/github
chmod 600 ~/.ssh/github
cat >>~/.ssh/config <<END
Host target
HostName $SSH_HOST
User $SSH_USER
IdentityFile ~/.ssh/github
LogLevel ERROR
StrictHostKeyChecking no
END
- name: Run deploy
run: |
ssh target "cd /home/django/django_venv/src && docker compose down && git pull && docker compose build && docker compose up -d"