← Volver al blog

Cómo ejecutar comandos SSH en tu servidor con GitHub Actions

Publicado el
1 min de lectura
--- vistas

En la máquina host

ssh-keygen -t rsa -b 4096 -C "<YOUR_EMAIL>"

En workflow.yml

  deploy:
    needs: publish
    name: Deploy to VPS
    runs-on: ubuntu-latest
    steps:
      - name: Install ssh keys
        run: |
          mkdir -p ~/.ssh
          echo "${{secrets.APP_SSH_PRIVATE_KEY}}" > ~/.ssh/id_rsa_${{env.SERVICE_NAME}}
          chmod 600 ~/.ssh/id_rsa_${{env.SERVICE_NAME}}
          cat >>~/.ssh/config <<EOF
          Host ${{env.SERVICE_NAME}}
              HostName ${{env.APP_SSH_HOST}}
              Port ${{env.APP_SSH_PORT}}
              User ${{env.APP_SSH_USER}}
              IdentityFile ~/.ssh/id_rsa_${{env.SERVICE_NAME}}
              StrictHostKeyChecking no
          EOF
      - name: Connect and pull
        run: |
          ssh ${{env.SERVICE_NAME}} -p ${{env.APP_SSH_PORT}}
          cd ${{env.APP_SSH_WORKDIR}}
          echo ${{secrets.PAT}} | docker login ghcr.io -u ${{github.actor}} --password-stdin
          docker compose pull ${{env.SERVICE_NAME}}
          docker compose up -d ${{env.SERVICE_NAME}}
          exit
      - name: Cleanup
        run: rm -rf ~/.ssh

Disponible para colaboración por contrato

Estoy disponible para colaborar por contrato. Si tiene una idea de proyecto interesante, reserve una llamada por Calendly.

Agenda una llamada de 30 min