Aller au contenu

Environnements

Les environnements vous permettent de gérer plusieurs profils isolés au sein de bssh. Chaque environnement conserve sa propre base de données indépendante pour les connexions, les tags, les alias, l’historique des sessions et la configuration par défaut.

Chaque environnement est stocké dans son propre répertoire sous ~/.config/bayesian-ssh/environments/<nom>/ :

  • history.db : Une base de données SQLite indépendante contenant :
    • Les connexions enregistrées et les identifiants
    • Les tags et les groupes
    • Les alias courts
    • L’historique et la durée des sessions passées
    • Les sources d’inventaire configurées
  • config.json : Les paramètres spécifiques au profil, comprenant :
    • L’utilisateur SSH et le port par défaut
    • Le bastion et l’utilisateur du bastion par défaut
    • Le mode de recherche (bayesian ou fuzzy)
    • Les préférences d’enregistrement de session
    • Les réglages de prédiction contextuelle

L’environnement initial intégré se nomme default. Votre environnement actif est suivi dans le fichier ~/.config/bayesian-ssh/active_env.

Exécutez bssh env list pour afficher tous les environnements disponibles. Le profil actif est signalé par un astérisque :

bssh env list
Environments:
client-a
* default (active)

Exécutez bssh env create avec un nom unique pour initialiser un nouveau profil :

bssh env create client-a
✅ Created new environment 'client-a'
To start using it, run: bayesian-ssh env use client-a

La création d’un environnement génère une base de données history.db vierge et un fichier config.json pré-rempli avec les réglages par défaut.

Exécutez bssh env use pour basculer vers un autre profil actif :

bssh env use client-a
✅ Now using environment 'client-a'

Une fois le changement effectué, toutes les commandes bssh suivantes s’appliquent à la base de données de l’environnement sélectionné jusqu’au prochain changement.

Exécutez bssh env remove pour supprimer un environnement et sa base de données associée :

bssh env remove client-a
🗑️ Removed environment 'client-a'

bssh applique des règles de sécurité lors de la suppression :

  • Vous ne pouvez pas supprimer l’environnement en cours d’utilisation. Basculez d’abord vers un autre environnement.
  • Vous ne pouvez pas supprimer l’environnement intégré default.
# Changer de profil depuis le terminal
bssh env use client-a

Pour exécuter une seule commande dans un autre environnement sans modifier votre profil actif persistant, utilisez l’option --env :

# Lister les connexions dans l'environnement client-b
bssh --env client-b list
# Se connecter à un hôte enregistré dans client-b
bssh --env client-b connect db-prod
# Tester l'accessibilité des hôtes dans client-b
bssh --env client-b ping --all

L’option --env s’applique exclusivement à cette exécution. Votre environnement actif demeure inchangé.

  • Séparation par client : Les consultants et agences peuvent maintenir des environnements distincts pour chaque client (client-acme, client-beta). Les connexions, les routes de bastion et les alias ne se mélangent jamais et n’apparaissent pas dans les recherches d’un autre client.
  • Vie professionnelle et personnelle : Isolez complètement vos serveurs personnels et projets personnels des infrastructures de production de votre entreprise.
  • Conformité et audits : Configurez un enregistrement strict des sessions et des bastions obligatoires dans un environnement de production, tout en conservant un environnement de test (sandbox) sans contrainte.