Guía de usuario Sesiones guardadas

Sesiones guardadas

Las confirmaciones y preguntas (eliminar sesiones, carpetas, túneles y macros, poner nombre a una carpeta nueva, las acciones de SFTP) se abren en los diálogos propios de PlexusTerm: Enter envía un nombre escrito y pulsa el botón con el foco de una confirmación, Escape cancela, y Cancelar tiene el foco cuando la acción elimina algo. Cancelar nunca realiza la acción.

El panel Sesiones de la izquierda guarda sesiones SSH, serie, Telnet, Mosh y de terminal local en carpetas (rutas del tipo Prod/DB). Usa Nueva / Carpeta o las acciones que aparecen al pasar el puntero por una carpeta; haz doble clic en una sesión (o pulsa Enter) para conectarte, y el cuadro de búsqueda filtra por nombre, host, dispositivo serie o shell. Haz clic derecho en una sesión para Conectar, Editar…, Duplicar (una copia llamada " (copia)" junto a ella; la contraseña guardada en el llavero no se copia) y Eliminar. Haz clic derecho en una carpeta para Nueva sesión aquí…, Nueva carpeta aquí…, Conectar todas (todas las sesiones que contiene y las de sus subcarpetas, cada una en su propia pestaña) y Eliminar carpeta. Mientras no se puede leer el archivo de sesiones, los menús solo ofrecen conectar. El diálogo de edición tiene un selector Tipo de sesión (SSH, Serie, Telnet, Mosh o Terminal local) que muestra los campos correspondientes. Las sesiones serie guardan la ruta del dispositivo y los parámetros de línea, y las sesiones Telnet el host y el puerto; ambas se abren directamente, sin contraseña. Las sesiones Mosh indican la sesión SSH guardada con la que inician sesión y un comando del servidor opcional. Las sesiones de terminal local guardan una shell (la del sistema por defecto, una detectada o cualquier programa, como en Ajustes del terminal), sus argumentos y un Directorio inicial (~ es tu directorio personal; vacío también empieza ahí), así que un PowerShell, una distribución de WSL o la carpeta de un proyecto están a un doble clic; sus pestañas llevan el nombre de la shell.

Las sesiones se guardan en ~/.config/dev.plexusterm.app/sessions.json (escrito de forma atómica, modo 0600); cada entrada tiene un kind (ssh, serial, telnet, mosh o local), y las entradas escritas por versiones anteriores sin él se cargan como sesiones SSH. El archivo nunca contiene contraseñas ni frases de contraseña de claves (consulta Contraseñas guardadas). Las versiones anteriores a las sesiones de terminal local no pueden leer un archivo que contenga una, así que muestran el error descrito abajo en lugar de las sesiones. Si no se puede leer el archivo, el panel muestra el error y desactiva la edición para que el archivo nunca se sobrescriba.

Contraseñas guardadas

Las sesiones con contraseña guardadas (pestañas de terminal, Mosh y túneles) se conectan primero: PlexusTerm prueba tus claves (consulta Sesiones SSH), luego la contraseña guardada en el llavero, y solo pide la contraseña cuando el servidor aún la necesita. Esa petición tiene una casilla Guardar la contraseña en el llavero del sistema, desmarcada por defecto. Las sesiones de conexión rápida toman la contraseña en el diálogo de conexión y nunca la guardan. Instalar en el generador de claves SSH sigue preguntando antes de conectarse.

  • Las contraseñas se guardan solo en el llavero del sistema mediante la API Secret Service (GNOME Keyring, KWallet), con el servicio dev.plexusterm.app, el id de la sesión como cuenta y la etiqueta PlexusTerm: user@host:port. Nunca se escriben en sessions.json ni en tunnels.json.
  • Una contraseña solo se guarda tras un inicio de sesión correcto. Las conexiones posteriores la leen en el backend; nunca se devuelve a la interfaz de usuario.
  • Una contraseña guardada queda vinculada al user@host:port para el que se escribió y solo se envía ahí. Cambiar el host, el puerto o el usuario de una sesión (o dejar de usar la autenticación por contraseña) olvida la contraseña guardada; las contraseñas guardadas por versiones anteriores, que no tienen ese vínculo, se vuelven a pedir una vez.
  • Si el llavero no puede guardar o eliminar la contraseña (por ejemplo, porque está bloqueado y no responde en 10 segundos), la conexión se abre igualmente y se muestra un aviso: una línea amarilla en la pestaña del terminal o una nota bajo el túnel.
  • Si se rechaza la contraseña guardada, la petición aparece con la casilla marcada: un inicio de sesión correcto la reemplaza, y desmarcar la casilla la elimina. Si no hay ninguna contraseña utilizable guardada, la petición aparece desmarcada, como en un primer inicio de sesión.
  • Olvidar la contraseña guardada en el diálogo de edición de la sesión la elimina; eliminar la sesión, o una carpeta que la contenga, también la elimina.
  • Sin Secret Service la casilla está desactivada y las contraseñas se piden en cada conexión.
  • Las frases de contraseña de las claves nunca se guardan.

Hosts de salto

Una sesión SSH guardada puede llegar a su servidor a través de hasta 3 hosts de salto (bastiones), como ssh -J. En el diálogo de edición de la sesión, Hosts de salto lista otras sesiones SSH guardadas en el orden en que se atraviesan: añádelas desde la lista, súbelas o bájalas, o quítalas. Las sesiones de conexión rápida no tienen hosts de salto.

  • PlexusTerm inicia sesión en el primer host de salto, abre desde él una conexión reenviada a la dirección y el puerto del siguiente host, inicia sesión en este, y así sucesivamente hasta el servidor de la propia sesión. A cada host se llega desde el anterior, así que su dirección debe tener sentido allí (p. ej., una IP privada detrás del bastión).
  • Cada host se comprueba con ~/.ssh/known_hosts con su propia dirección y puerto; un host de salto desconocido muestra la petición de confianza con su nombre ("bastion: host de salto 1 de 2").
  • Cada host inicia sesión con el método de su propia sesión guardada (clave, agente o contraseña). Los hosts con contraseña prueban primero tus claves y luego la contraseña guardada en el llavero; a un host que aún necesita contraseña se le pide durante la conexión, de uno en uno ("Contraseña de bastion: host de salto 1 de 2"), cada petición con su propia casilla Guardar la contraseña en el llavero del sistema.
  • Si un host de salto tiene sus propios hosts de salto, se atraviesan primero. Una sesión no puede ser su propio host de salto, y las cadenas con ciclos, sesiones repetidas, más de 3 hosts en total, o sesiones de salto eliminadas o que no son SSH se rechazan con un error.
  • Los errores indican el host que falló, p. ej. via bastion (jump host 1): authentication failed.
  • El navegador SFTP de la pestaña usa la misma conexión, y los túneles SSH cuya sesión tiene hosts de salto también pasan por ellos. Cerrar la pestaña (o detener el túnel) cierra todas las conexiones de la cadena.
  • Eliminar una sesión que otras sesiones usan como host de salto pide confirmación y la quita de sus hosts de salto.

Importar sesiones de un archivo .ini

Importar → Desde un fichero .ini… en el panel Sesiones lee un archivo de sesiones .ini con secciones [Bookmarks] (UTF-8, o la página de códigos Windows-1252 en la que suelen escribirse estos archivos) y muestra una vista previa antes de guardar nada:

  • Las sesiones SSH de las secciones [Bookmarks] / [Bookmarks_N] se importan con su host, puerto (22 si falta o no es válido) y usuario, y las sesiones Telnet con su host y puerto (23 si falta o no es válido), dentro de una carpeta Imported que conserva la ruta de carpetas guardada en el archivo.
  • Las sesiones SSH importadas usan autenticación por contraseña; cámbiala después con Editar. Las rutas de claves privadas no se importan.
  • Los demás tipos de sesión (RDP, VNC, Serial, WSL, FTP, ...), las entradas sin host y las líneas no reconocidas se omiten y se cuentan por tipo en la vista previa.
  • Las sesiones ya guardadas con el mismo tipo, carpeta, nombre, host, puerto y usuario se omiten como duplicados.
  • Las contraseñas nunca se importan: no se leen la sección [Passwords] ni ninguna otra sección.

Importar hosts de ~/.ssh/config

Importar → Desde ~/.ssh/config lee la configuración del cliente OpenSSH de tu carpeta personal (~/.ssh/config, también en Windows) y muestra la misma vista previa:

  • Cada alias Host concreto se convierte en una sesión SSH con su nombre, dentro de Imported/SSH config. Los patrones con comodines (*, ?) y negados (!) no se importan como sesiones, pero sus opciones se aplican a los hosts que coinciden con ellos, igual que las opciones anteriores al primer Host; como en ssh, gana el primer valor de cada opción.
  • Se leen HostName (el alias si falta; %h se sustituye por el alias), User (vacío si falta), Port (22 si falta o no es válido) y el primer IdentityFile. Un host con IdentityFile usa esa clave privada (%d se convierte en ~); uno sin él usa autenticación por contraseña.
  • Los saltos de ProxyJump que son hosts del mismo archivo se convierten en los hosts de salto de la sesión (como máximo 3). Los demás saltos, como user@gateway:2222, y ProxyCommand no se admiten: el host se importa sin ellos y se cuenta en la vista previa.
  • Las líneas Include y los bloques Match no se siguen y se cuentan en la vista previa. Cualquier otra opción se ignora.
  • Los hosts ya importados de la misma forma se omiten como duplicados, así que importar de nuevo solo añade los hosts nuevos.