From 6b3194320bc9d9c9217aeb428b7ab34d07a3e1c9 Mon Sep 17 00:00:00 2001 From: Sluijsens Date: Thu, 30 Jul 2026 14:27:49 +0200 Subject: [PATCH] Fix SCP-deploy: geef secrets via env: door i.p.v. inline in het script MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Gitea Actions plakt ${{ secrets.* }} als platte tekst in het run-script vóórdat bash het uitvoert. Bevat het wachtwoord een shell-metateken zoals '$', dan interpreteert bash dat alsnog, waardoor sshpass een ander wachtwoord krijgt dan bedoeld ("Permission denied"). Via env: en sshpass -e komt de waarde als kant-en-klare string binnen, zonder die tweede interpretatieslag. --- .gitea/workflows/deploy.yaml | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index e36088b..4c535e7 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -37,10 +37,23 @@ jobs: # voor containeracties niet volledig ondersteunt. Een scp-commando # in een normale run-stap heeft die geneste container niet nodig. - name: Upload dist to ${{ inputs.environment }} web server via SCP + env: + # Secrets via env: in plaats van rechtstreeks in het `run:`-script + # ge-interpoleerd: Gitea Actions plakt ${{ secrets.* }} als platte + # tekst in het script vóórdat bash het uitvoert. Staat er een + # shell-metateken in de waarde (zoals '$' of '`'), dan probeert + # bash dat alsnog te interpreteren, waardoor een ander wachtwoord + # bij sshpass terechtkomt dan verwacht ("Permission denied"). Via + # env: krijgt bash de waarde als kant-en-klare string doorgegeven, + # zonder die tweede interpretatieslag. + SSHPASS: ${{ secrets.PI_MAIN_PASSWORD }} + PI_MAIN_PORT: ${{ secrets.PI_MAIN_PORT }} + PI_MAIN_USERNAME: ${{ secrets.PI_MAIN_USERNAME }} + PI_MAIN_ADDRESS: ${{ secrets.PI_MAIN_ADDRESS }} run: | sudo apt-get update && sudo apt-get install -y sshpass - sshpass -p "${{ secrets.PI_MAIN_PASSWORD }}" scp \ - -P ${{ secrets.PI_MAIN_PORT }} \ + sshpass -e scp \ + -P "$PI_MAIN_PORT" \ -o StrictHostKeyChecking=no \ -r ${{ inputs.artifact_name }}/* \ - ${{ secrets.PI_MAIN_USERNAME }}@${{ secrets.PI_MAIN_ADDRESS }}:${{ inputs.deploy_path }} + "$PI_MAIN_USERNAME@$PI_MAIN_ADDRESS:${{ inputs.deploy_path }}"