aptly repo add + publish update via SSH na de scp #120

Merged
roelof merged 1 commit from aptly-repo-add-publish into main 2026-08-20 18:09:10 +02:00
Owner

Vervolg op #119: het .deb-bestand kwam al aan in incoming/main, maar er was nog niets dat het daadwerkelijk in de gepubliceerde repo zette.

Wijziging
Na de scp roept de workflow twee ssh-commando's aan:

  • docker exec aptly-server aptly repo add internal-main /incoming/main
  • docker exec aptly-server aptly publish update trixie

Dezelfde APTLY_KEY/APTLY_SERVER als de scp, plus de nieuwe APTLY_USER-secret (vervangt de eerder vaste roelof@).

Sleutelbeveiliging
Eén vaste command= in authorized_keys kan maar één ding draaien. Voor drie toegestane commando's (scp + twee aptly-commando's) hoort hierbij een wrapper-script op de server (aptly-ci-command.sh) dat $SSH_ORIGINAL_COMMAND tegen een vaste lijst exacte strings matcht en al het overige weigert — nooit een shell, nooit iets dat op wat de client stuurt gebouwd wordt. CLAUDE.md is bijgewerkt met dit ontwerp.

Let op: dit vereist dat het wrapper-script op de server staat, de authorized_keys-regel is aangepast naar restrict,command="/usr/local/bin/aptly-ci-command.sh", en de APTLY_USER-secret in Forgejo overeenkomt met de gebruiker in die regel.

Vervolg op #119: het .deb-bestand kwam al aan in `incoming/main`, maar er was nog niets dat het daadwerkelijk in de gepubliceerde repo zette. **Wijziging** Na de `scp` roept de workflow twee `ssh`-commando's aan: - `docker exec aptly-server aptly repo add internal-main /incoming/main` - `docker exec aptly-server aptly publish update trixie` Dezelfde `APTLY_KEY`/`APTLY_SERVER` als de scp, plus de nieuwe `APTLY_USER`-secret (vervangt de eerder vaste `roelof@`). **Sleutelbeveiliging** Eén vaste `command=` in `authorized_keys` kan maar één ding draaien. Voor drie toegestane commando's (scp + twee aptly-commando's) hoort hierbij een wrapper-script op de server (`aptly-ci-command.sh`) dat `$SSH_ORIGINAL_COMMAND` tegen een vaste lijst exacte strings matcht en al het overige weigert — nooit een shell, nooit iets dat op wat de client stuurt gebouwd wordt. CLAUDE.md is bijgewerkt met dit ontwerp. **Let op**: dit vereist dat het wrapper-script op de server staat, de `authorized_keys`-regel is aangepast naar `restrict,command="/usr/local/bin/aptly-ci-command.sh"`, en de `APTLY_USER`-secret in Forgejo overeenkomt met de gebruiker in die regel.
De .deb kwam al aan in de incoming-map, maar niets zette 'm daarna in de
gepubliceerde repo. build-player.yml roept nu na de scp twee ssh-commando's
aan: docker exec aptly-server aptly repo add internal-main /incoming/main
en docker exec aptly-server aptly publish update trixie, met dezelfde
APTLY_KEY/APTLY_SERVER als de scp, plus de nieuwe APTLY_USER-secret
(vervangt de vaste roelof@).

Eén vaste command= in authorized_keys kan maar één ding draaien, dus voor
drie toegestane commando's hoort hier een wrapper-script op de server bij
(aptly-ci-command.sh) dat SSH_ORIGINAL_COMMAND tegen een vaste lijst
matcht en al het overige weigert. CLAUDE.md is bijgewerkt met dat ontwerp.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
roelof merged commit f495efe230 into main 2026-08-20 18:09:10 +02:00
roelof deleted branch aptly-repo-add-publish 2026-08-20 18:09:10 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
KavalirOS/RockHeaven!120
No description provided.