Un túnel SSH lleva las herramientas del equipo de casa al navegador de la tablet o el móvil.
La interfaz se carga desde GitHub Pages en el navegador de Android y habla con 127.0.0.1:6883 de la propia tablet. El cliente SSH (ConnectBot o Termux) redirige ese puerto al 127.0.0.1:6883 del equipo de casa, donde corre el servidor local. Así, archivos, comandos y servicios MCP son los de casa. Sin túnel, el equipo de casa también puede publicarse con un proxy inverso.
127.0.0.1; lo único accesible desde fuera es SSH.1234 en LM Studio) y apunta el perfil a http://127.0.0.1:1234/v1.En /etc/ssh/sshd_config (o un fichero en /etc/ssh/sshd_config.d/), solo claves y solo tu usuario; después reinicia el servicio (sudo systemctl restart sshd):
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
AllowUsers usuario
AllowTcpForwarding localEl servidor se lanza en la propia sesión SSH, desde el directorio del proyecto y sin abrir el navegador de casa. No hace falta copiar ninguna URL: la tablet se identifica en la página con el usuario y la contraseña de la cuenta de casa (sección 3).
cd ~/proyectos/mi-proyecto && zerochat --no-browser --keep-server --port 6883cd elige el directorio del proyecto, que aparece en la cabecera del servidor. Después puedes cambiarlo desde la interfaz, en el modo proyecto.--keep-server: el navegador de Android deja de enviar latidos cuando la pestaña pasa a segundo plano; sin esta opción el servidor se cerraría al minuto de cambiar de aplicación. Con ella la página no envía latidos: relee el estado del servidor, o reconecta, al volver a la pestaña.zerochat: una sesión SSH con orden forzada o automatizada no carga tu PATH completo. Si zerochat no está en /usr/bin, usa la ruta completa que muestra command -v zerochat.Para que la tablet no tenga consola en casa, crea un par de claves solo para ella y añade la pública a ~/.ssh/authorized_keys con estas restricciones, en una sola línea. Con ella solo se puede abrir el túnel a esos dos puertos y lanzar ZeroChat:
restrict,pty,port-forwarding,permitopen="127.0.0.1:6883",permitopen="127.0.0.1:1234",command="cd ~/proyectos/mi-proyecto && /home/usuario/venv/bin/zerochat --no-browser --keep-server --port 6883" ssh-ed25519 AAAA… tabletpty es necesario: con terminal, al cerrar la sesión ZeroChat recibe la señal de cierre y se detiene; sin ella seguiría en marcha ocupando el puerto.
authorized_keys de casa (sección 2).usuario@casa con esa clave.6883 → 127.0.0.1:6883 y 1234 → 127.0.0.1:1234.Sin la clave restringida, escribe la orden de arranque en la consola o ponla en la automatización tras el inicio de sesión (Post-login automation) del host para lanzarla al conectar.
Con la clave restringida basta con abrir la sesión, sin -N, para que arranque ZeroChat:
ssh -i ~/.ssh/tablet -L 6883:127.0.0.1:6883 -L 1234:127.0.0.1:1234 usuario@casaSin ella, pasa la orden de arranque con -t, para que la sesión tenga terminal y ZeroChat se detenga al cerrarla:
ssh -t -L 6883:127.0.0.1:6883 -L 1234:127.0.0.1:1234 usuario@casa 'cd ~/proyectos/mi-proyecto && zerochat --no-browser --keep-server --port 6883'http://127.0.0.1:6883 como URL del servidor local, deja Usar proxy desactivado y pulsa Conectar.127.0.0.1.| Situación | Qué pasa |
|---|---|
| Se corta la conexión SSH | ZeroChat se detiene en casa cuando sshd cierra la sesión. Reconecta y vuelve a la pestaña: la página reconecta con el token del día. |
| La página pide identificarse | No había sesión guardada en el navegador o el token del día ha caducado (a medianoche o tras borrar los datos). Identifícate de nuevo; los comandos en marcha en casa siguen. |
| Al reconectar, ZeroChat no arranca: Address already in use | Sigue en marcha el de la sesión anterior, porque sshd aún no ha detectado el corte o la sesión no tenía terminal. Espera a que la cierre o detenlo: pkill -f -- '--port 6883'. |
| Las herramientas fallan con 403 Expired or invalid tool authorization | Los relojes de la tablet y de casa difieren en más de 30 s. Activa la fecha y hora automáticas en los dos. |