Usar clave SSH global del monitor
This commit is contained in:
+28
-11
@@ -118,20 +118,36 @@ Usuario SSH.
|
||||
|
||||
### `password`
|
||||
|
||||
Password SSH. Se guarda en `config.json`, por lo que el archivo debe permanecer protegido. Si `privateKeyPath` esta configurado, la clave privada tiene prioridad y no se usa `password`.
|
||||
Password SSH. Se guarda en `config.json`, por lo que el archivo debe permanecer protegido. Si el dispositivo usa `authMethod: "key"`, no se usa `password`.
|
||||
|
||||
### `authMethod`
|
||||
|
||||
Metodo de autenticacion SSH por dispositivo. Valores recomendados:
|
||||
|
||||
- `password`: usa `username` y `password`.
|
||||
- `key`: usa `username` y la clave privada global configurada en `sshPrivateKeyPath`.
|
||||
|
||||
### `privateKeyPath`
|
||||
|
||||
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.
|
||||
Campo heredado para configuraciones antiguas con clave privada por dispositivo. La interfaz nueva usa la clave global del monitor y deja este campo vacio.
|
||||
|
||||
## 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`.
|
||||
- Clave privada global: dejar `password` vacio y seleccionar `authMethod: "key"`.
|
||||
|
||||
Cuando `privateKeyPath` tiene valor, el backend usa clave privada y no usa el password.
|
||||
Cuando un dispositivo tiene `authMethod: "key"`, el backend usa la clave privada global configurada en `sshPrivateKeyPath`. El campo `privateKeyPath` por dispositivo queda solo como compatibilidad con configuraciones antiguas.
|
||||
|
||||
### Configuracion global de claves
|
||||
|
||||
```json
|
||||
"sshPrivateKeyPath": "/ssh/monitor_rpi_ed25519",
|
||||
"sshPublicKeyPath": "/ssh/monitor_rpi_ed25519.pub"
|
||||
```
|
||||
|
||||
La clave privada se queda solo en el monitor. La clave publica se muestra en el configurador y puede copiarse o descargarse para instalarla en las RPi remotas.
|
||||
|
||||
### 1. Guardar la clave privada en el volumen del monitor
|
||||
|
||||
@@ -144,15 +160,15 @@ En la RPi donde corre el contenedor, guarda las claves en:
|
||||
Ejemplo:
|
||||
|
||||
```text
|
||||
/home/yamaray/docker/monitorRPi/ssh/carabanes_monitor_ed25519
|
||||
/home/yamaray/docker/monitorRPi/ssh/carabanes_monitor_ed25519.pub
|
||||
/home/yamaray/docker/monitorRPi/ssh/monitor_rpi_ed25519
|
||||
/home/yamaray/docker/monitorRPi/ssh/monitor_rpi_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
|
||||
chmod 600 /home/yamaray/docker/monitorRPi/ssh/monitor_rpi_ed25519
|
||||
```
|
||||
|
||||
El `docker-compose.yml` debe montar esa carpeta dentro del contenedor:
|
||||
@@ -167,8 +183,9 @@ volumes:
|
||||
Dentro de la configuracion del dispositivo, la ruta debe ser la ruta vista por el contenedor:
|
||||
|
||||
```json
|
||||
"authMethod": "key",
|
||||
"password": "",
|
||||
"privateKeyPath": "/ssh/carabanes_monitor_ed25519"
|
||||
"privateKeyPath": ""
|
||||
```
|
||||
|
||||
### 2. Instalar la clave publica en la Raspberry destino
|
||||
@@ -187,7 +204,7 @@ chmod 600 ~/.ssh/authorized_keys
|
||||
En `authorized_keys` pega el contenido de la clave publica:
|
||||
|
||||
```text
|
||||
carabanes_monitor_ed25519.pub
|
||||
monitor_rpi_ed25519.pub
|
||||
```
|
||||
|
||||
El archivo correcto en Linux/OpenSSH es:
|
||||
@@ -203,13 +220,13 @@ No es `authorised_keys`.
|
||||
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
|
||||
docker exec -it monitor-rpi ssh -i /ssh/monitor_rpi_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
|
||||
docker exec -it monitor-rpi ssh -i /ssh/monitor_rpi_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.
|
||||
|
||||
Reference in New Issue
Block a user