Ir al contenido

Conectar máquinas

Ten tu trabajo local y tus agentes remotos en una sola ventana de Herdr. Guarda una máquina SSH una vez y cambia entre sus espacios de trabajo y la máquina local sin abrir otro cliente. La lista de agentes incluye las máquinas conectadas, así ves dónde corre cada trabajo y qué agente espera una respuesta.

Cada máquina mantiene su propio servidor de Herdr, sus sesiones y sus procesos. Perder la conexión con una máquina no desconecta a las demás.

Herdr pide compresión SSH para reducir el tráfico de actualizaciones de pantalla en conexiones limitadas. Funciona con servidores de Herdr antiguos compatibles y no cambia cómo se entrega lo que tecleas ni otras entradas. La opción -C de Herdr prevalece sobre un Compression no en tu configuración de SSH. Si SSH reutiliza una conexión existente a través de un ControlMaster externo, esa conexión mantiene su ajuste de compresión original.

Necesitas acceso SSH normal a la máquina remota. Compruébalo primero:

Ventana de terminal
ssh workbox

workbox puede ser un host de tu configuración de SSH. También puedes usar un destino como ssh://tú@servidor:2222.

Las conexiones multimáquina admiten clientes Linux, macOS y Windows conectando a servidores Linux o macOS en x86_64 o aarch64, o a servidores Windows en x86_64. La configuración interactiva puede instalar o actualizar el paquete remoto completo tras pedir confirmación; las reconexiones en segundo plano solo detectan paquetes ya instalados. Mira Conexión remota por SSH para la configuración de SSH, la autenticación y los binarios personalizados.

Ejecuta la configuración en una terminal interactiva, para que Herdr pueda preguntar antes de instalar o reemplazar nada:

Ventana de terminal
herdr machine add workbox --label "Máquina de compilación"

Esto usa la sesión remota por defecto. Un perfil de máquina apunta a una sesión remota; no combina todas las sesiones del host.

Para usar una sesión con nombre, añade el flag opcional --remote-session:

Ventana de terminal
herdr machine add workbox --label "Máquina de compilación" --remote-session agents

Herdr comprueba tanto el binario instalado como el servidor en marcha. Arranca el servidor en segundo plano solicitado antes de guardar el perfil. Las versiones de cliente y servidor no tienen que coincidir, basta con que sean compatibles. Las instalaciones ausentes o incompatibles pasan por una configuración con aprobación. Cuando el servidor en marcha necesita reemplazo, la configuración pregunta antes de pararlo junto con los procesos de sus paneles, y después arranca el servidor compatible. La respuesta por defecto es No. Si hacen falta instalación y reemplazo, una sola confirmación cubre ambos. machine add no usa el traspaso en caliente experimental. Cancelar la configuración, o que falle, deja el perfil sin guardar.

Ejecuta herdr para abrir la interfaz. Si ya hay un cliente local abierto, las máquinas añadidas y activadas suelen aparecer en un segundo y se conectan en segundo plano sin cambiar tu selección. Un cambio de máquina en curso termina antes de aplicar los cambios de perfil. El servidor remoto sigue en marcha cuando termina la configuración.

Elige una máquina o uno de sus espacios de trabajo en la barra lateral. La máquina seleccionada recibe tu entrada y el tamaño de la terminal, y proporciona el contenido visible de la terminal y los gráficos. Las demás máquinas conectadas siguen actualizando la información de sus espacios de trabajo, los estados de los agentes y las notificaciones, sin transmitir las pantallas de sus paneles.

Haz clic en la flecha junto a cualquier máquina para plegar o desplegar su lista de espacios de trabajo sin abandonar el que tienes activo. Funciona también mientras esa máquina se está reconectando.

Con el teclado, pulsa prefijo+w y usa las teclas de navegación de espacios de trabajo (arriba y abajo por defecto) para resaltar espacios de trabajo de todas las máquinas conectadas en el orden de la barra lateral. Intro activa el resaltado; Esc o la tecla de prefijo cancelan sin cambiar. Las barras laterales compacta y desplegada muestran la fila resaltada, incluso bajo una máquina plegada. En escritorio, la navegación da la vuelta al llegar a los extremos; el selector móvil se detiene en el primer o último espacio de trabajo. Las máquinas desconectadas se saltan.

Cuando resaltes un espacio de trabajo de otra máquina, pulsa Intro antes de usar otras acciones de teclado. Así evitas que los atajos de panel, pestaña, espacio de trabajo o comandos personalizados actúen por error sobre la máquina actual. Hacer clic cancela una previsualización de teclado remota. Las barras laterales desplegadas respetan los grupos de worktrees plegados de cada máquina.

La máquina local se abre de inmediato al arrancar, sin esperar a las conexiones SSH. Seleccionarla también cancela un cambio remoto sin terminar, sin esperar a que la máquina remota responda. Si la propia máquina local se está reconectando, tu selección se reanuda cuando esté lista. La máquina local acepta entrada en cuanto su pantalla nueva y los ajustes de terminal están listos. Una máquina atascada no puede retener la entrada de otra. Varios clientes de Herdr también pueden ver pestañas distintas del mismo servidor de forma independiente; mira Cliente y servidor para el tamaño de las pestañas compartidas.

Cuando se pierde una conexión, el último espacio de trabajo y el estado de los agentes siguen visibles pero atenuados. Es información en caché, no estado vivo. La entrada y la navegación en esos paneles en caché quedan desactivadas hasta que llega una conexión nueva con una pantalla que coincida. Reconectarse nunca te quita la selección de la máquina que estás usando.

Lee los IDs de perfil de la lista, en vez de deducirlos de las etiquetas o los nombres de host:

Ventana de terminal
herdr machine list
herdr machine rename <id-de-perfil> --label "Nombre nuevo"
herdr machine disable <id-de-perfil>
herdr machine enable <id-de-perfil>
herdr machine remove <id-de-perfil>

Para scripts, añade --json a machine list.

Renombrar cambia la etiqueta mostrada sin reconectar. Desactivar conserva el perfil para más adelante; eliminar lo olvida. Ambas acciones desconectan solo esa máquina del cliente y dejan sus sesiones y agentes remotos en marcha, aunque el host no sea accesible.

Eliminar o desactivar la máquina que estás viendo te devuelve a la local. Si la local no está disponible, Herdr lo indica y reintenta su conexión en vez de seleccionar otra máquina remota. Con máquinas guardadas activadas, el cliente puede seguir siendo utilizable aunque la local falle o se reinicie.

  • Reconectando: Herdr reintenta automáticamente después de una interrupción de red, una suspensión o un fallo de SSH. Los fallos repetidos aumentan la espera hasta dos minutos; las conexiones breves con éxito no la reinician. Una conexión debe mantenerse sana durante un minuto para que la siguiente interrupción tenga un reintento rápido. Las conexiones SSH se comprueban por actividad a nivel de aplicación y se sondean cuando están en silencio, así que una conexión rota no se queda como «en línea» indefinidamente. La máquina local detecta el cierre o fallo nativo de la conexión en vez de usar sondeos remotos.
  • Atención: el destino necesita una acción que no puede completarse en segundo plano, como aprobar una clave de host, autenticarse o disponer de un servidor compatible. Las demás máquinas siguen siendo utilizables.
  • Error en el fichero de máquinas guardadas: un catálogo ilegible o no válido deja las conexiones actuales como están. Herdr muestra un aviso y reintenta leerlo automáticamente.

Cuando ambas instalaciones lo admiten, las conexiones a máquinas guardadas Linux y macOS también cierran su puente remoto después de un minuto sin tráfico en ninguna dirección. La suspensión cuenta para ese plazo, que se comprueba al despertar el equipo. Las conexiones sanas en silencio intercambian comprobaciones de salud; ver una salida continua no requiere teclear. Esta limpieza deja en marcha el servidor remoto de Herdr, las sesiones y los procesos de los paneles. Las instalaciones antiguas siguen siendo compatibles sin esta limpieza opcional.

Las conexiones en segundo plano nunca responden a preguntas ni instalan, actualizan, reinician o traspasan un servidor. Ante un estado de Atención, ejecuta en una terminal interactiva el comando de configuración independiente que muestra Herdr, por ejemplo:

Ventana de terminal
herdr --remote workbox

Usa el destino de tu perfil. Si elegiste una sesión con nombre al añadirla, incluye aquí también el opcional --session <nombre>. Responde a las confirmaciones y reinicia el cliente para reintentar la conexión. No pares un servidor en marcha solo porque su versión difiera de la del cliente.

Si falla la autenticación, comprueba primero el SSH normal. Para una clave protegida con contraseña, cárgala con ssh-add antes de arrancar las conexiones no interactivas en segundo plano de Herdr.

Para autenticación de Git o firma SSH dentro de los paneles remotos, activa ForwardAgent yes para el host de confianza en tu configuración de SSH. Herdr no activa el reenvío por ti. Cuando una sesión arranca con un agente, los servidores Linux y macOS actualizados dan a los paneles una dirección de agente estable, de modo que los paneles nuevos y los existentes pueden usar el agente reenviado después de que --remote o una máquina guardada se reconecten. Un agente heredado o una conexión anterior que funcione mantiene prioridad sobre los clientes posteriores y las comprobaciones temporales de la configuración; si desaparece, otra conexión viva puede suministrar el agente.

Esto requiere un servidor remoto actualizado, no solo un cliente local actualizado. Las sesiones locales que arrancaron sin agente dejan SSH_AUTH_SOCK como está. Los paneles creados antes de actualizar el servidor, o antes de que la sesión recibiera un agente por primera vez, conservan su entorno original y hay que recrearlos una vez para que hereden la dirección estable. Los servidores antiguos compatibles y las conexiones sin reenvío de agente siguen pudiendo conectarse con normalidad.

La interfaz usa por defecto el tema, los ajustes de la barra lateral y los atajos del cliente local. Los comandos personalizados y los plugins que anuncia el servidor seleccionado siguen ejecutándose allí. Herdr no copia a los hosts SSH tus plugins de comandos, configuración, ejecutables ni secretos locales. Los comandos remotos que falten fallan de forma visible. Usa la acción reload config de la interfaz después de editar los ajustes del cliente; mira Configuración.

Las filas de agente por defecto muestran un token machine cuando hay varias máquinas. Las filas personalizadas existentes se conservan; añade machine expresamente si quieres esa etiqueta en tu disposición. Las disposiciones de fila de la barra lateral también admiten colores condicionales para las etiquetas de máquina.

Los IDs de espacio de trabajo, pestaña y panel, y los nombres de agente, pertenecen a un solo servidor. Dos máquinas pueden tener las dos un w1:p1 o un agente llamado reviewer. Seleccionar una máquina en la interfaz no cambia el destino de los comandos de la CLI que corren en un panel existente: siguen usando la sesión y el socket heredados por ese panel. Para automatización remota, usa herdr --machine <etiqueta-o-id> agent list y pasa ese mismo prefijo al controlar esos IDs remotos. La CLI usa directamente el destino SSH y la sesión del perfil guardado; no necesita una interfaz abierta. Sin --machine, el enrutado de sesión y socket no cambia. Mira la referencia de la CLI para los comandos admitidos, los requisitos de actualización y las reglas de rutas remotas.

Los perfiles guardados contienen solo un ID opaco, la etiqueta, el destino SSH, la sesión remota explícita y el estado de activación. Herdr no guarda en el catálogo contraseñas, claves privadas, tickets de agente ni sockets de control de SSH. La autenticación se queda en OpenSSH.

Aparte, Herdr recuerda el sistema operativo remoto de cada máquina y la ruta resuelta de su ejecutable, para que los comandos --machine repetidos se salten la detección. Los perfiles existentes aprenden la información que les falte en el primer uso. Esta caché es opcional: si falta, no es válida o no se puede escribir, los comandos siguen funcionando. Los comandos siguen comprobando la compatibilidad del servidor en vivo. Si un ejecutable en caché falta o ya no admite el reenvío de la API, Herdr lo redescubre durante la comprobación inicial de solo lectura; nunca repite automáticamente un comando que pueda haber cambiado ya el estado remoto.

El cliente y el servidor negocian la compatibilidad en vez de exigir versiones idénticas. Las conexiones a máquinas guardadas necesitan además que el servidor tenga las capacidades surface_interest y health_check. Los servidores antiguos sin ellas muestran Atención hasta que se actualizan expresamente, aunque una conexión independiente funcione. Los demás métodos de servidor que falten desactivan solo sus acciones correspondientes.

Actualizar un cliente compatible no reemplaza el servidor remoto en marcha ni para sus agentes. Cuando necesites un comportamiento nuevo del lado del servidor, actualiza ese servidor expresamente. El reemplazo normal pregunta antes de parar el servidor y los procesos de sus paneles.

El traspaso en caliente es experimental y opcional. Para un servidor compatible que necesite reemplazo durante la configuración independiente, puedes añadir expresamente --handoff a herdr --remote; no hace falta para las conexiones normales ni para arreglar la autenticación. Mira Actualizar para las opciones de reinicio y traspaso, y Estado de la sesión y restauración para saber qué sobrevive a cada operación.