Files
INFRAESTRUCTURA/docs/ACCESO_REMOTO_SOBREMESA.md
2026-10-03 23:30:44 +02:00

85 lines
4.5 KiB
Markdown

# Acceso remoto al sobremesa (SSH → PowerShell) + Tailscale
Fecha: 03-oct-2026. Complementa `SISTEMA_APAGADO_ENCENDIDO_REMOTO.md` (ese cubre *encender/apagar*;
esto cubre *entrar una vez encendido*).
## Objetivo
Poder trabajar en el sobremesa desde el portátil (o el iPad) **esté donde esté el PC**, con acceso
directo a su **PowerShell** por SSH, sin abrir puertos en el router.
## Arquitectura
```
Portátil / iPad ──(Tailscale, red privada cifrada)──> SOBREMESA
└─ sshd (OpenSSH) → PowerShell
```
- **Tailscale** pone ambos equipos en una malla privada (rango `100.64.0.0/10`), con nombres estables.
- **OpenSSH Server** en el sobremesa expone `sshd` (puerto 22), shell por defecto = PowerShell.
- El firewall del sobremesa solo acepta SSH desde Tailscale y LAN.
> **ESTADO ACTUAL (03-oct-2026)** — en el sobremesa ya está TODO hecho:
> `sshd`+`ssh-agent` Automatic/Running, shell = PowerShell, firewall :22 solo Tailscale+LAN,
> Tailscale up (**100.75.115.29**, hostname real `desktop-m8se61g`), clave del portátil en
> `administrators_authorized_keys`, Fast Startup OFF, BIOS Restore on AC = Power On.
> **Usuario SSH = `juanjo`** (cuenta local admin). **Único pendiente: unir el portátil a Tailscale.**
El encendido es por la **regleta inteligente** (comando Alexa `regletta`): se apaga el PC en limpio,
la regleta corta la corriente, y al restaurarla la BIOS ("Restore on AC Power Loss = Power On") lo
enciente y hace **autologon** en `juanjo`. No se usa Wake-on-LAN (descartado).
`sshd` arranca como **servicio** con Windows, así que en cuanto el PC tiene corriente, SSH ya está
disponible (no depende del autologon).
## Puesta en marcha (una vez por equipo)
### 1) Portátil (cliente)
- Instalar Tailscale y unirse: `scripts\acceso_remoto\setup_tailscale.ps1 -Hostname portatil`
(abre el navegador para autenticar; requiere admin para instalar).
- Clave SSH (ya creada en este portátil): `~/.ssh/id_ed25519`.
Pública:
```
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK7tk2+Vznv3zs+vjks64fwV+mznOQ7D+7Ct+vIBFJcz juanm@portatil
```
### 2) Sobremesa (servidor) — ejecutar **como administrador**
```powershell
# 1. Tailscale
powershell -ExecutionPolicy Bypass -File scripts\acceso_remoto\setup_tailscale.ps1 -Hostname sobremesa
# 2. OpenSSH Server + clave del portátil (auto-eleva)
powershell -ExecutionPolicy Bypass -File scripts\acceso_remoto\setup_ssh_server.ps1 `
-PublicKey "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK7tk2+Vznv3zs+vjks64fwV+mznOQ7D+7Ct+vIBFJcz juanm@portatil"
```
### 3) Probar desde el portátil
```powershell
ssh juanjo@desktop-m8se61g # por nombre Tailscale (MagicDNS)
ssh juanjo@100.75.115.29 # o por IP del sobremesa en la tailnet
```
> El usuario del sobremesa es `juanjo` (no `juanm`). El hostname en la tailnet es
> `desktop-m8se61g` (nombre Windows), no `sobremesa`; confirmar siempre con `tailscale status`.
## Uso diario
- `ssh juanjo@desktop-m8se61g` → consola PowerShell remota.
- Comandos sueltos: `ssh juanjo@desktop-m8se61g "Get-Process | Sort CPU -Desc | Select -First 5"`.
- Copiar ficheros: `scp fichero juanjo@desktop-m8se61g:C:/Users/juanjo/`.
- Desde el iPad: app **Tailscale** + cliente SSH (p. ej. Termius/Blink) con la misma clave.
## Seguridad
- Contraseñas SSH deshabilitadas → **solo clave pública** (recomendado: `PasswordAuthentication no`).
- Firewall SSH restringido a `100.64.0.0/10` (Tailscale) y LAN; sin exposición a Internet.
- La tailnet se puede restringir por ACLs en el panel de Tailscale.
- La clave `id_ed25519` del portátil está **sin passphrase** por comodidad (los equipos ya tienen
autologon). Si se quiere endurecer: `ssh-keygen -p -f ~/.ssh/id_ed25519`.
## Troubleshooting
- `ssh` no conecta: en el sobremesa `Get-Service sshd` (debe estar *Running*) y `Get-NetFirewallRule -DisplayName 'OpenSSH Server (sshd) - acceso remoto'`.
- No resuelve el nombre Tailscale: `tailscale status` en ambos; usar la IP `100.x.y.z`.
- ¿Autenticación rechazada? Revisar que la clave pública está en
`C:\ProgramData\ssh\administrators_authorized_keys` (si el usuario es admin) con ACLs correctas
(`SYSTEM` y `Administrators` a Full).
- Ver logs: `Get-Service sshd | Get-Content` o `C:\ProgramData\ssh\logs\sshd.log` (activando `LogLevel DEBUG3` si hace falta).
## Relación con el arranque remoto
1. Comando Alexa `regletta` → la regleta corta/restaura corriente → BIOS (Restore on AC) arranca el sobremesa.
2. `sshd` y Tailscale arrancan solos con Windows; el autologon entra en `juanjo`.
3. Portátil: `ssh juanjo@desktop-m8se61g` → PowerShell remoto.