- keys/adacam-update-public.pem: RSA-4096 public key (private on Lucy) - services/updater/adacam-updater.sh: standalone updater (also inlined in liberate.sh) - services/updater/99-adacam-usb.rules: udev rule for auto-trigger on USB insert - scripts/sign-bundle.sh: create + sign recovery bundles on Lucy - keys/README.md: updated with signing key docs and bundle creation instructions Private key at: /boot/config/adacam/adacam-update-private.pem (Lucy, boot-persistent) |
||
|---|---|---|
| .. | ||
| adacam-update-public.pem | ||
| adacam_authorized_key.pub | ||
| README.md | ||
keys/
All public keys. Private keys live on Lucy only, never in this repo.
SSH Access Keys — adacam_authorized_key.pub
Injected into every liberated AdaCam during liberation. Two keys:
cobb@adacam— primary access key, private half at/boot/config/adacam/id_ed25519_adacamon Lucykayos@openclaw— OpenClaw agent key, private half at~/.openclaw/id_ed25519_unraid
How to SSH into a liberated AdaCam:
# On adacam AP (always works):
ssh -i /boot/config/adacam/id_ed25519_adacam root@10.77.0.1
# On home WiFi (after WiFi config via Varroa):
ssh -i /boot/config/adacam/id_ed25519_adacam root@<device-lan-ip>
Private key location on Lucy: /boot/config/adacam/id_ed25519_adacam
Update Signing Key — adacam-update-public.pem
RSA-4096 public key. Used by adacam-updater to verify signed recovery bundles before applying.
Private key location on Lucy: /boot/config/adacam/adacam-update-private.pem
To create a signed recovery bundle:
# On Lucy
bash scripts/sign-bundle.sh ./recovery-output ./my-bundle-dir
# Produces: adacam-recovery.tar.gz + adacam-recovery.tar.gz.sig
# Copy both to USB drive: USB:/adacam_recovery/
Recovery flow:
- Create and sign a bundle (
scripts/sign-bundle.sh) - Copy
.tar.gz+.sigto USB drive underadacam_recovery/ - Insert USB into powered-on AdaCam
adacam-updaterfires via udev, verifies sig, runsinstall.shinside bundle- Device reboots automatically
- Check
/data/adacam/recovery.logif something went wrong
What a recovery bundle can do:
- Reinstall services (
/opt/adacam/) - Restore config (
/data/adacam/config.json) - Replace SSH authorized_keys (locked-out recovery)
- Run arbitrary root commands via
install.sh
What it cannot do (by design):
- Flash bootloader —
adacam-updaterdoes not callmovisoc-fwu - Full OS image replacement — use Mender for that (future)
Key Locations Summary
| Key | Type | Private | Public |
|---|---|---|---|
| SSH access | ed25519 | Lucy: /boot/config/adacam/id_ed25519_adacam |
keys/adacam_authorized_key.pub → /root/.ssh/authorized_keys |
| Update signing | RSA-4096 | Lucy: /boot/config/adacam/adacam-update-private.pem |
keys/adacam-update-public.pem → /etc/adacam/update-verify.pem |
adacam-update-public.pem
RSA-4096 public key for verifying signed USB recovery bundles.
Installed to /etc/adacam/update-verify.pem on every liberated device by liberate.sh.
Private key: /boot/config/adacam/adacam-update-private.pem on Lucy — NEVER commit this.
Creating a recovery bundle
From Lucy, inside the cloned adacam repo:
bash scripts/sign-bundle.sh [output-dir]
# Default output: /tmp/adacam-recovery-bundle/
Copy the adacam_recovery/ folder to the root of a USB drive.
Insert into a liberated AdaCam — recovery runs automatically.