Documentar autenticacion SSH por clave
This commit is contained in:
@@ -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`.
|
||||
|
||||
Reference in New Issue
Block a user