From e96fd2d95b8a4953458107c686aa0e52911371d3 Mon Sep 17 00:00:00 2001 From: haemka Date: Thu, 13 Aug 2026 15:16:54 +0000 Subject: [PATCH] Support non-standard SSH port in DEPLOY_HOST (fqdn:port) ssh-keyscan and rsync's -e ssh both need the port passed via -p rather than embedded in the hostname; parse DEPLOY_HOST accordingly, defaulting to 22 when no port is given. --- .gitea/workflows/build-deploy.yml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/build-deploy.yml b/.gitea/workflows/build-deploy.yml index 298d083..a125a53 100644 --- a/.gitea/workflows/build-deploy.yml +++ b/.gitea/workflows/build-deploy.yml @@ -23,6 +23,7 @@ jobs: - name: Set up SSH key # Same key used both as the theme repo's deploy key (Gitea) and for # the webserver login (below) — one secret, two authorized_keys entries. + # DEPLOY_HOST may be "fqdn" or "fqdn:port" (non-standard SSH port). env: DEPLOY_SSH_KEY: ${{ secrets.DEPLOY_SSH_KEY }} DEPLOY_HOST: ${{ secrets.DEPLOY_HOST }} @@ -30,7 +31,11 @@ jobs: mkdir -p ~/.ssh printf '%s\n' "$DEPLOY_SSH_KEY" > ~/.ssh/deploy_key chmod 600 ~/.ssh/deploy_key - ssh-keyscan -H git.haemka.in "$DEPLOY_HOST" >> ~/.ssh/known_hosts 2>/dev/null + DEPLOY_HOSTNAME="${DEPLOY_HOST%%:*}" + DEPLOY_PORT="${DEPLOY_HOST#*:}" + [ "$DEPLOY_PORT" = "$DEPLOY_HOST" ] && DEPLOY_PORT=22 + ssh-keyscan -H git.haemka.in >> ~/.ssh/known_hosts 2>/dev/null + ssh-keyscan -H -p "$DEPLOY_PORT" "$DEPLOY_HOSTNAME" >> ~/.ssh/known_hosts 2>/dev/null - name: Fetch theme submodule run: | @@ -53,6 +58,9 @@ jobs: DEPLOY_USER: ${{ secrets.DEPLOY_USER }} DEPLOY_PATH: ${{ secrets.DEPLOY_PATH }} run: | + DEPLOY_HOSTNAME="${DEPLOY_HOST%%:*}" + DEPLOY_PORT="${DEPLOY_HOST#*:}" + [ "$DEPLOY_PORT" = "$DEPLOY_HOST" ] && DEPLOY_PORT=22 rsync -avz --delete \ - -e "ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=yes" \ - output/ "${DEPLOY_USER}@${DEPLOY_HOST}:${DEPLOY_PATH}" + -e "ssh -i ~/.ssh/deploy_key -p $DEPLOY_PORT -o StrictHostKeyChecking=yes" \ + output/ "${DEPLOY_USER}@${DEPLOY_HOSTNAME}:${DEPLOY_PATH}"