Hosts y conexiones
El editor de hosts
Pulsa ⌘N para un host nuevo, o toca un host existente para editarlo. El editor tiene cuatro pestañas — conexión, avanzado, reenvío, fragmentos — y una barra de conectar. En el iPhone las mismas cuatro secciones aparecen como fichas — conexión, avanzado, túneles, fragmentos — donde los campos de conexión y las reglas de túneles quedan en espera hasta que tocas guardar (los demás cambios se aplican de inmediato, igual que en el iPad); el editor es el mismo en ambos dispositivos.
La pestaña de conexión contiene lo básico: nombre, dirección, puerto (1–65535), usuario, identidad (una clave de tu página de claves) y contraseña. Una contraseña que escribas aquí es de ámbito de sesión: se conserva solo durante la sesión activa y nunca se guarda. La única excepción es un host configurado mediante la configuración cercana o la continuidad que se autentica por contraseña — la contraseña que escribes una sola vez en el dispositivo nuevo se conserva como credencial guardada en el llavero de este dispositivo, nunca se sincroniza, y el editor puede cambiarla más tarde (al guardar se reemplaza la contraseña almacenada).
Transporte: SSH o Mosh
Cada host elige un transporte:
- ssh — una sola conexión SSH; las pestañas de tmux se quedan en la sesión principal.
- mosh — un terminal mosh sobre UDP. Mosh mantiene la sesión viva a
través de la itinerancia wifi ↔ datos móviles y del reposo/activación, y se
siente más ágil en enlaces con pérdidas. Requiere
mosh-serverinstalado en el host. Las pestañas de tmux usan un segundo canal lateral SSH. La página de mosh cuenta la historia completa, incluido el historial real.
El tráfico UDP de mosh no puede atravesar bastiones: si usas mosh a través de un host de salto y el servidor mosh es inalcanzable, Tessera te lo dice («mosh es inalcanzable a través de la cadena de saltos…») y vuelve a conectar por SSH.
Modos de inicio
- tmux automático — se conecta a (o crea) una sesión de tmux propia del
host con un nombre determinista
tessera-XXXXXXXX, recordado incluso si reinstalas la app. Es el modo por omisión, y el que hace inofensivas las conexiones caídas. - tmux con nombre — se conecta a un nombre de sesión de tmux que eliges tú; los nombres con caracteres no válidos vuelven al derivado automáticamente.
- personalizado — un comando de inicio literal. Por ssh se envía al shell
de inicio de sesión; por mosh lo ejecuta
mosh-server new -- <command>.
Consulta tmux para ver qué aportan los modos de tmux, y reenvío de puertos para saber cómo interactúa el modo de inicio con los túneles.
Hosts de salto
Cualquier host guardado puede usarse como bastión SSH (ProxyJump): elígelo en el editor de hosts. Las cadenas se anidan — el propio host de salto del host de salto alarga la cadena — y el editor muestra la ruta resultante («a → b → host») con avisos para las cadenas rotas.
- Cada salto se autentica de forma independiente con su propia identidad o contraseña. Los saltos con contraseña reciben un campo contraseña · <nombre del salto> en la sección de hosts de salto del editor, conservado solo durante la sesión activa; conectar queda desactivado hasta que cada salto tenga la suya.
- Las preguntas de clave de host aparecen por salto, primero el bastión, y cada una nombra el endpoint que se verifica.
- Una cadena rota falla de forma segura: si se eliminó un host de salto, el host dependiente lo avisa en su editor y la conexión falla en lugar de ir directa en silencio. Los errores nombran el salto del que proceden («host de salto <nombre>: …»).
- En el nivel gratuito, un bastión guardado por separado ocupa su propio hueco de host guardado.
La pestaña avanzado
- logotipo del SO — detectado automáticamente al conectar, o fijado a mano (macos, ubuntu, debian, alpine, linux, raspbian).
- etiquetas y notas — para tu propia organización.
- variables de entorno — un
KEY=valuepor línea; se elimina unexportinicial opcional. Los valores se pasan tal cual al shell remoto —$HOME,$(…)y las comillas funcionan como se escriben. - fondo del terminal — una anulación por host del fondo global.
Las variables de entorno y los fragmentos de inicio solo se ejecutan cuando arranca la sesión de tmux. Si los cambias para un host cuya sesión de tmux ya existe, cierra esa sesión en el servidor para aplicar los cambios.
Fragmentos
La pestaña de fragmentos contiene un fragmento de inicio: comandos enviados justo después de conectar (aplica la misma advertencia de tmux de arriba).
Cuando una conexión se atasca
Mientras una sesión arranca, la superposición de inicio nombra la etapa en la que está — conectando, luego para los hosts con tmux iniciando tmux (SSH) o conectando a tmux (mosh), y después conectando al panel. Si una etapa no avanza durante unos doce segundos, la superposición dice qué etapa está atascada («sigue en conectando: el handshake no ha terminado.») y ofrece una salida en lugar de girar sin fin:
- editar el host — abre el editor de hosts, para cuando el problema es la dirección, el puerto o la clave,
- reintentar — desmonta el intento y vuelve a conectar desde cero,
- atrás — abandona y vuelve a tus hosts. Salir de un intento atascado lo desconecta por completo — no queda nada en ejecución en el servidor.
El temporizador es por etapa, así que una conexión lenta que sigue avanzando nunca lo dispara. Si tmux en sí no puede arrancar — no está instalado, la sesión no consigue iniciarse o los dotfiles del host ya lanzan tmux al iniciar sesión — Tessera te deja en un shell simple con un aviso que dice exactamente qué pasó, en lugar de esperar a un tmux que nunca responderá.
Sesiones
Tessera mantiene abiertas varias sesiones simultáneas con cualquier host. Los hosts de tmux automático son únicos — una sesión de control de tmux por host (por host y nombre de sesión con tmux con nombre) — mientras que los hosts con comando personalizado pueden tener varias («nombre #2», «nombre #3»). La sección activas de la barra lateral lista todas las sesiones, etiquetadas «nombre (tmux)», «nombre (tmux: nombre-de-sesión)» o «nombre #N», cada una con un botón de desconexión. En el iPhone, la misma lista es la pestaña sesiones.
Cambia entre sesiones tocándolas, recorriendo las vecinas con ⌘⇧K /
⌘⇧J, o abriendo la paleta de cambio rápido de ⌘K: escribe para
filtrar sesiones (las más recientes primero) y agentes — antepón @ a la
consulta para acotarla a los agentes.
Restauración de sesiones
ajustes → terminal → inicio → conexiones anteriores controla qué ocurre en un arranque nuevo:
- preguntar — muestra una hoja de «reabrir las conexiones anteriores» con «reabrir siempre» / «reabrir» / «ahora no».
- siempre — reconecta en silencio.
- nunca — arranca limpio.
En el iPhone, la hoja de elección se sustituye por un único conmutador restaurar al abrir. Solo son restaurables las sesiones de hosts guardados con material de clave intacto.
Volver al primer plano funciona igual pero con más cabeza: Tessera espera a que todas las sesiones abiertas informen de su estado antes de decidir qué reconectar, de modo que cuando varios hosts caen a la vez — o una sesión mosh admite tarde que murió — cada una se reconecta, ninguna se queda tirada. Mientras tanto, la superposición de inicio cuenta las restantes («+2 sesiones más reconectando»). Tessera es deliberadamente de ventana única (sin multiescena en el iPad); la barra lateral y la paleta — la barra de pestañas y el selector en el iPhone — son la manera de moverse.