Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fc2dcd4fca | ||
|
|
121183ac83 |
@@ -0,0 +1,43 @@
|
||||
# backup-pull — usuario de solo lectura para el pull desde la Mac
|
||||
|
||||
La VPS genera los backups cifrados en `/var/backups/cayce/YYYY-MM-DD/`.
|
||||
La Mac los descarga por rsync con una clave SSH **restringida**. La VPS
|
||||
nunca tiene credenciales para escribir ni borrar nada fuera de sí misma.
|
||||
|
||||
## Estado instalado en la VPS
|
||||
|
||||
- Usuario de sistema `backup-pull` (uid 1001): **sin sudo**, password
|
||||
bloqueado, home `/home/backup-pull`, shell `/bin/sh` (necesario para que
|
||||
sshd ejecute el forced command; la restricción real la pone la clave, no
|
||||
el shell).
|
||||
- `/home/backup-pull/.ssh/authorized_keys` (600, backup-pull:backup-pull) —
|
||||
**vacío** hasta que el operador añada su clave pública.
|
||||
- `/var/backups/cayce` → `root:backup-pull`, `750`; artefactos `640`.
|
||||
|
||||
## Formato de la línea authorized_keys (una sola línea)
|
||||
|
||||
restrict,command="/usr/bin/rrsync -ro /var/backups/cayce" ssh-ed25519 AAAA... comentario
|
||||
|
||||
`restrict` = no-pty, no-port-forwarding, no-agent-forwarding, no-X11-forwarding
|
||||
(y sin sftp). `rrsync -ro` = solo rsync de LECTURA, confinado a
|
||||
`/var/backups/cayce`. Añadirla con:
|
||||
|
||||
echo 'restrict,command="/usr/bin/rrsync -ro /var/backups/cayce" ssh-ed25519 AAAA... cayce-mac-pull' \
|
||||
| sudo tee -a /home/backup-pull/.ssh/authorized_keys
|
||||
|
||||
## Pull desde la Mac
|
||||
|
||||
rsync -av --partial backup-pull@15.235.3.239:/ ~/backups/cayce/
|
||||
|
||||
## Verificación realizada (2026-10-28, con clave desechada después)
|
||||
|
||||
| Prueba | Resultado |
|
||||
|---|---|
|
||||
| Shell interactivo | ✗ `rrsync error: Not invoked via sshd` |
|
||||
| Comando arbitrario (`cat /etc/shadow`) | ✗ `SSH_ORIGINAL_COMMAND does not run rsync` |
|
||||
| rsync de `/etc/` | ✗ `invalid rsync-command syntax or options` (fuera del root permitido) |
|
||||
| scp/sftp | ✗ (restrict) |
|
||||
| **rsync pull de `/var/backups/cayce/`** | ✓ funciona |
|
||||
| rsync write (upload) | ✗ protocolo cortado, nada escrito |
|
||||
|
||||
La clave usada para las pruebas se **borró**; `authorized_keys` quedó vacío.
|
||||
Reference in New Issue
Block a user