# Github Action with EC2 using SSH ## Configure SSH into aws ec2 - How to handle SSH keys with ec2-github actions https://zellwk.com/blog/github-actions-deploy/ ### Declare these git secrets - SSH_PRIVATE_KEY - HOST_NAME / IP_ADDRESS - USER_NAME ```yml name: Deploy on: push: branches: [ dev ] jobs: Deploy: name: Deploy to EC2 runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Build & Deploy env: PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} HOSTNAME: ${{secrets.SSH_HOST}} USER_NAME: ${secrets.USER_NAME} run: | echo "$PRIVATE_KEY" > private_key && chmod 600 private_key ssh -o StrictHostKeyChecking=no -i private_key ${USER_NAME}@${HOSTNAME} ' # Now we have got the access of EC2 and we will start the deploy . cd /home/ubuntu/ && git checkout dev && git fetch --all && git reset --hard origin/dev && git pull origin dev && sudo npm i && sudo npm run build && sudo pm2 stop ./dist/index.js && sudo pm2 start ./dist/index.js ' ```