SSH, rsync & dependencies¶
What this is¶
Fixes when PiHerder cannot log into a host, key deploy fails, or enabled features lack rsync / docker / apt on the remote. Start from server SSH access → Test connection.
Cannot connect¶
- Hostname/IP and port correct?
- Firewall allows SSH from PiHerder host?
- Test connection on SSH access panel.
- Key deployed? Password only for bootstrap.
- Host-key mismatch? After the first successful connect, PiHerder pins the remote SSH host key. A rebuild or a different machine at the same address is refused until you reset the pin on SSH access, then Test connection again.
Key deploy fails¶
- Password session required if key not yet installed.
authorized_keyspermissions on remote (~/.ssh700, file 600).- SELinux/AppArmor rare edge cases on some distros.
Backups: permission denied / rsync¶
- Non-root: need
sudo -n rsync(passwordless) for protected paths. - Root/HAOS: plain rsync path auto-detected.
- HAOS: install the rsync package on the appliance; enable Terminal & SSH and deploy the PiHerder key. Host deps probe
haCLI (not apt) when HA updates is on — HAOS hosts. - Path policy may deny the source — check allow/deny on Backups page.
Backups: rsync code 23 (partial transfer)¶
Exit 23 means some files failed; volumes or other sources may still succeed. The job error should name the failing path (e.g. readdir(...): Input/output error).
| Symptom in error | Likely cause | What to do on the host |
|---|---|---|
Input/output error / I/O error on a path | Bad disk, failing mount, or ext4 shutdown after FS errors | findmnt PATH, dmesg \| tail, SMART (smartctl -a), unmount + fsck, remount or replace media |
Permission denied | sudo / ownership | Passwordless sudo -n rsync, or root SSH |
vanished (often code 24; may surface as 23) | Files deleted/moved while rsync ran — common on Frigate/NVR and other busy media trees | v1.2 B-retry: automatic retry + optional soft-OK (backups troubleshooting). Still split high-churn paths when you need a strict snapshot. |
Example (disk, not vanished): a separate NVMe mount under the docker tree with ext4 shutdown and ls → I/O error must be repaired on the host before backups of that tree can succeed.
Docker commands fail after least-priv¶
- User in
dockergroup? re-login / new session. - Docker base dir absolute path + Option B ACL if stacks under another home.
~/dockerexpands to wrong home after username switch.
Dependency chips red¶
SSH access → Check dependencies (or Test connection) — install missing packages on the host yourself (PiHerder does not auto-install).