Importación, exportación, copia de seguridad y restauración
Bayesian SSH ofrece dos métodos para transferir datos:
- Importación y exportación: Transfiere configuraciones de conexiones y metadatos en formatos legibles (JSON, configuración OpenSSH o TOML para exportaciones), con cifrado opcional mediante frase de contraseña.
- Copia de seguridad y restauración: Captura o restaura una instantánea completa de la base de datos SQLite, incluyendo historial de sesiones, estadísticas de uso, alias y etiquetas.
Importar conexiones
Sección titulada «Importar conexiones»Usa bssh import para incorporar hosts existentes a tu base de datos de Bayesian SSH.
Importar un archivo de configuración de OpenSSH
Sección titulada «Importar un archivo de configuración de OpenSSH»De forma predeterminada, bssh import lee tu archivo ~/.ssh/config local (o la ruta configurada en config.json bajo ssh_config_path):
bssh import✅ Successfully imported 14 connection(s) from SSH configPara indicar un archivo de configuración alternativo:
bssh import -f ~/.ssh/config.d/workComportamientos clave durante la importación de configuración SSH:
- Atributos de host: Procesa
Host,HostName,User,PorteIdentityFile. - Etiquetado automático: Cada host importado recibe la etiqueta
importedpara que puedas filtrarlo o gestionarlo fácilmente. - Idempotencia: Si ya existe una conexión con el mismo nombre en la base de datos,
bsshla omite sin error y conserva tu entrada actual. - Ignorar bastiones: Para importar hosts como conexiones directas en lugar de heredar el bastión por defecto configurado, añade
--no-bastion:
bssh import --no-bastionImportar una copia de seguridad JSON cifrada
Sección titulada «Importar una copia de seguridad JSON cifrada»Si exportaste conexiones previamente usando bssh export --passphrase, impórtalas especificando la ruta del archivo y la frase de contraseña:
bssh import -f hosts-backup.enc --passphrase "correct horse battery staple"🔓 Decrypting import file with passphrase...✅ Imported 8 connection(s) from JSON backup (2 already existed).Exportar conexiones
Sección titulada «Exportar conexiones»Usa bssh export para compartir listas de hosts, generar configuraciones de OpenSSH o crear copias de seguridad cifradas.
# Exportar todas las conexiones en formato JSON a stdoutbssh export
# Exportar a un archivobssh export -o hosts.jsonFormatos de exportación
Sección titulada «Formatos de exportación»Bayesian SSH admite tres formatos de exportación mediante la opción --format:
# Exportar en formato JSON (predeterminado)bssh export --format json -o hosts.json
# Exportar en formato TOMLbssh export --format toml -o hosts.toml
# Exportar en formato estándar OpenSSH configbssh export --format ssh-config -o ~/.ssh/config.d/bssh-hosts| Formato | Opción | Descripción |
|---|---|---|
json |
--format json |
Matriz JSON completa de modelos de conexión (predeterminado). |
toml |
--format toml |
Documento TOML con tablas [[connections]]. |
ssh-config |
--format ssh-config |
Formato OpenSSH estándar (Host, HostName, User, Port, IdentityFile y ProxyCommand para bastiones). |
Filtrar por etiqueta
Sección titulada «Filtrar por etiqueta»Para exportar únicamente los hosts que coincidan con una etiqueta específica, utiliza -t o --tag:
bssh export -t prod -o prod-hosts.jsonCifrar exportaciones con una frase de contraseña
Sección titulada «Cifrar exportaciones con una frase de contraseña»Para proteger los detalles de las conexiones exportadas, proporciona -p o --passphrase junto con -o:
bssh export -o hosts-backup.enc --passphrase "correct horse battery staple"🔒 Encrypting export with passphrase...✅ Exported 28 connections to hosts-backup.encDiseño criptográfico
Sección titulada «Diseño criptográfico»Las exportaciones cifradas utilizan cifrado autenticado para asegurar tanto la confidencialidad como la integridad:
- Derivación de claves: Argon2id con 64 MiB de memoria, 3 iteraciones y 1 hilo para derivar una clave de 256 bits a partir de tu frase de contraseña.
- Cifrado autenticado: AES-256-GCM con un nonce aleatorio de 12 bytes y una etiqueta de autenticación de 16 bytes.
- Formato del archivo: Un encabezado mágico
BSSHseguido de un byte de versión (0x02), 16 bytes de sal, 12 bytes de nonce y el texto cifrado con la etiqueta de autenticación GCM añadida. - Escritura segura: Los archivos se generan a través de un archivo temporal con permisos estrictos
0600(-rw-------) y se renombran de forma atómica sobre el destino.
Copia de seguridad de la base de datos
Sección titulada «Copia de seguridad de la base de datos»Mientras que bssh export serializa las definiciones de conexiones, bssh backup captura la base de datos SQLite al completo, incluyendo el historial de sesiones, las ponderaciones de clasificación y los alias.
bssh backup✅ Database successfully backed up to: /home/user/.local/share/bayesian-ssh/backups/backup-2026-10-23-093000.dbDestino de la copia de seguridad
Sección titulada «Destino de la copia de seguridad»Por defecto, las copias de seguridad se guardan en un subdirectorio backups/ dentro del directorio de tu entorno, nombradas con una marca de tiempo: backup-YYYY-MM-DD-HHMMSS.db.
Para elegir un archivo de destino concreto:
bssh backup -o ~/backups/bssh-snapshot.dbEl archivo de destino se crea con permisos 0600 (-rw-------) y bssh backup rechaza sobrescribir archivos existentes.
Restaurar la base de datos
Sección titulada «Restaurar la base de datos»Usa bssh restore para sustituir tu base de datos activa por una instantánea previa.
bssh restore ~/backups/bssh-snapshot.db⚠️ WARNING: This will replace your current database with: ~/backups/bssh-snapshot.db Your existing database will be safely backed up first.
Are you sure you want to restore? [y/N] y✅ Database successfully restored from: ~/backups/bssh-snapshot.dbPara omitir la confirmación en scripts automáticos, añade -f o --force:
bssh restore ~/backups/bssh-snapshot.db -fGarantías de seguridad y validación
Sección titulada «Garantías de seguridad y validación»- Comprobación de integridad: Antes de tocar tu base de datos activa,
bsshcomprueba que el archivo sea una base de datos SQLite intacta que contenga las tablas del esquema de Bayesian SSH. - Instantánea previa: Si el archivo de la base de datos actual existe,
bsshgenera automáticamente una copia de seguridad interna (VACUUM INTO) antes de sobrescribir nada. - Reemplazo atómico: La restauración se ejecuta copiando en un archivo temporal con permisos
0600y renombrándolo de manera atómica a su ubicación final. - Limpieza de archivos auxiliares: Los archivos de registro WAL de la base anterior (
-wal,-shmy-journal) se eliminan limpiamente para evitar corrupciones en el archivo restaurado. - Migración automática: Al abrir la base de datos restaurada,
bsshaplica automáticamente cualquier migración de esquema pendiente, actualizando copias antiguas de forma transparente.