85 lines
4.5 KiB
Markdown
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.
|