Documentar autenticacion SSH por clave

This commit is contained in:
2026-06-03 01:02:36 +02:00
parent 2435bd9437
commit 2a781e7859
2 changed files with 119 additions and 0 deletions
+90
View File
@@ -124,6 +124,96 @@ Password SSH. Se guarda en `config.json`, por lo que el archivo debe permanecer
Ruta de la clave privada SSH dentro del contenedor o del host donde corre el monitor. Debe apuntar a una clave privada legible por el proceso del monitor. Para uso en Docker, monta la clave o una carpeta `.ssh` dentro del contenedor. Las claves con passphrase requieren agente SSH disponible; para monitorizacion unattended suele usarse una clave sin passphrase protegida por permisos de archivo.
## Autenticacion SSH por Clave Privada
El monitor soporta dos metodos de autenticacion por dispositivo:
- Password SSH: usar `password` y dejar `privateKeyPath` vacio.
- Clave privada: dejar `password` vacio y configurar `privateKeyPath`.
Cuando `privateKeyPath` tiene valor, el backend usa clave privada y no usa el password.
### 1. Guardar la clave privada en el volumen del monitor
En la RPi donde corre el contenedor, guarda las claves en:
```text
/home/yamaray/docker/monitorRPi/ssh
```
Ejemplo:
```text
/home/yamaray/docker/monitorRPi/ssh/carabanes_monitor_ed25519
/home/yamaray/docker/monitorRPi/ssh/carabanes_monitor_ed25519.pub
```
La clave privada debe quedar protegida:
```bash
chmod 700 /home/yamaray/docker/monitorRPi/ssh
chmod 600 /home/yamaray/docker/monitorRPi/ssh/carabanes_monitor_ed25519
```
El `docker-compose.yml` debe montar esa carpeta dentro del contenedor:
```yaml
volumes:
- /home/yamaray/docker/monitorRPi/app:/app:ro
- /home/yamaray/docker/monitorRPi/data:/data
- /home/yamaray/docker/monitorRPi/ssh:/ssh:ro
```
Dentro de la configuracion del dispositivo, la ruta debe ser la ruta vista por el contenedor:
```json
"password": "",
"privateKeyPath": "/ssh/carabanes_monitor_ed25519"
```
### 2. Instalar la clave publica en la Raspberry destino
En el dispositivo remoto, la clave publica debe agregarse al usuario SSH correspondiente.
Ejemplo para usuario `pi`:
```bash
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
```
En `authorized_keys` pega el contenido de la clave publica:
```text
carabanes_monitor_ed25519.pub
```
El archivo correcto en Linux/OpenSSH es:
```text
~/.ssh/authorized_keys
```
No es `authorised_keys`.
### 3. Probar la conexion desde el contenedor
Una vez montada la clave, puedes probar desde la RPi host:
```bash
docker exec -it monitor-rpi ssh -i /ssh/carabanes_monitor_ed25519 -o IdentitiesOnly=yes pi@HOST_REMOTO
```
Si el dispositivo usa un puerto distinto:
```bash
docker exec -it monitor-rpi ssh -i /ssh/carabanes_monitor_ed25519 -o IdentitiesOnly=yes -p 34000 pi@192.168.0.1
```
Si la conexion funciona sin pedir password, el monitor tambien podra consultar ese dispositivo.
### `model`
Modelo visible: `RPi 3`, `RPi 4`, `RPi 5`.