
Une suite d'accès distant native en terminal pour SSH, inventaires cloud, connecteurs basés sur fournisseurs, commandes parallèles, espaces de travail mux, transfert de fichiers et surveillance.
ls + ssh = lssh
lssh est une suite d'accès à distance native en terminal pour les workflows SSH, les inventaires cloud et les connecteurs basés sur des fournisseurs.
Il vous permet de sélectionner des hôtes depuis la configuration OpenSSH, la configuration lssh, ou des inventaires de fournisseurs, puis de les opérer via SSH natif ou des backends de connecteurs tels que AWS SSM, EC2 Instance Connect Endpoint, WinRM, Telnet, et des fournisseurs personnalisés.
Utilisez-le pour des shells interactifs, des commandes parallèles, des espaces de travail mux, le transfert de fichiers, la synchronisation, le montage et la supervision. Les hôtes basés sur des connecteurs n'exposent que les opérations que leur connecteur supporte.
brew install blacknon/lssh/lssh
go install github.com/blacknon/lssh/cmd/lssh@latest
Les fonctionnalités d'inventaire et de connecteur basées sur des fournisseurs utilisent des exécutables de fournisseurs séparés.
Si vous installez seulement cmd/lssh, ces binaires de fournisseurs ne sont pas installés automatiquement.
Pour le développement local, installez les fournisseurs inclus avec :
mise run provider_install
Pour les builds de release, installez soit l'archive tout-en-un lssh-complete_*, soit ajoutez l'archive correspondante lssh-providers_* depuis GitHub Releases.
Pour plus de détails d'installation, y compris d'autres options et des notes spécifiques à la plateforme, voir docs/install.md.
Vous utilisez déjà ~/.ssh/config ?
Exécutez simplement :
lssh
Vous souhaitez générer une configuration lssh à partir de votre configuration SSH existante ?
lssh --generate-lssh-conf > ~/.lssh.toml
lssh est conçu pour un workflow simple :
Vous pouvez toujours cibler un seul hôte directement lorsque vous savez déjà où vous connecter :
lssh -H my-server
Pour plus de détails sur les formats de configuration et les paramètres, voir cmd/lssh/README.md.
Vous voulez essayer lssh rapidement avec un environnement de jeu local prêt à l'emploi ?
Commencez par demo/README.md.
Pour le flux connecteur telnet + fournisseur multi-saut, utilisez demo-telnet-provider/README.md.
lssh prend en charge à la fois votre configuration OpenSSH existante et son propre format de configuration.
Si vous voulez commencer rapidement, vous pouvez continuer à utiliser ~/.ssh/config tel quel. Si vous voulez des métadonnées d'hôte plus riches et des paramètres orientés workflow, vous pouvez plutôt passer à une configuration lssh.
Vous pouvez également générer une configuration lssh à partir de votre configuration SSH existante :
lssh --generate-lssh-conf > ~/.lssh.toml
Même après être passé à la configuration lssh, vous pouvez toujours la pointer vers votre configuration OpenSSH existante et charger les hôtes depuis celle-ci :
[sshconfig.default]
path = "~/.ssh/config"
Pour plus de détails sur les formats de configuration et les paramètres, voir docs/configuration.md.
lssh peut fonctionner avec plus que des entrées de configuration SSH statiques.
Les fournisseurs lui permettent de récupérer des hôtes depuis des sources d'inventaire externes, de résoudre les secrets juste avant la connexion, et d'utiliser des backends de connexion non-SSH tels que des connecteurs gérés dans le cloud.
Dans v0.10.0, les workflows d'inventaire et de secrets basés sur des fournisseurs sont mieux traités comme beta.
L'accès basé sur des connecteurs au-delà du SSH natif est encore expérimental, en particulier pour les environnements d'exécution gérés dans le cloud et les backends non-SSH.
Si vous voulez essayer les flux orientés fournisseurs localement, commencez par ces démos :
Pour un aperçu de l'architecture et du protocole des fournisseurs, commencez par provider/README.md. Les détails par catégorie sont également documentés sous inventory, connector, secret et mixed.
Ces implémentations de fournisseurs sont actuellement incluses dans ce dépôt.
|
provider-inventory-proxmox Construire des entrées d'hôtes à partir de l'inventaire Proxmox. |
|
provider-connector-openssh Utiliser la gestion de connexion compatible OpenSSH comme connecteur basé sur un fournisseur. |
| provider-mixed-aws-ec2 Combiner l'inventaire EC2 avec les connecteurs AWS SSM et EC2 Instance Connect Endpoint. Les flux adjacents SSH natifs sont utilisables, tandis que le comportement spécifique au connecteur reste expérimental. |
Le projet lssh inclut plusieurs outils pour des workflows centrés sur SSH.
lssh, transfert et utilisation du rc localSi vous évaluez lssh, ces projets méritent également un coup d'œil.
Ils chevauchent certaines parties de la suite, mais chacun couvre généralement une partie plus restreinte du workflow global.
lssh est différentelssh combine la sélection d'hôtes, le SSH interactif, l'exécution de commandes parallèles, le transfert et les cibles basées sur des connecteurs/fournisseurs.lsshell se concentre sur les workflows shell interactifs parallèles plutôt que de simplement lancer plusieurs terminaux.lscp, lsftp et lssync couvrent le transfert de fichiers et la synchronisation en tant que commandes de première classe dans la même suite.lsmux fournit un espace de travail SSH basé sur des panneaux plutôt que seulement un templating de sessions.lspipe rend les hôtes sélectionnés réutilisables depuis des pipelines locaux et de l'automatisation.
![]() Sélecteur d'hôtes interactif |
![]() Exécution de commandes en parallèle |
![]() Workflow mux |
![]() Workflow mux avec commande |
|
provider-connector-telnet Atteindre des cibles telnet via l'interface du connecteur. |
|
provider-connector-winrm Exécuter des workflows de commande sur des cibles WinRM. Le support du shell interactif n'est pas disponible dans v0.10.0. |
|
provider-mixed-azure-compute Construire l'inventaire Azure Compute avec des paramètres d'accès conscients des connecteurs. |
|
provider-mixed-gcp-compute Construire l'inventaire Google Compute Engine avec des paramètres d'accès conscients des connecteurs. |
|
provider-secret-bitwarden Résoudre les références de secrets depuis Bitwarden. |
provider-secret-onepassword Résoudre les références de secrets depuis 1Password. |
provider-secret-custom-script Résoudre les références de secrets via des scripts locaux personnalisés. |
|
provider-secret-os-keychain Résoudre les références de secrets depuis le trousseau du système d'exploitation local. |
![]() lssh core / stableAccès SSH interactif, commandes parallèles et modes de transfert. |
![]() lscp transfer / stableCopie de style SCP via SSH/SFTP, y compris les transferts de poste à poste distant. |
![]() lsftp transfer / stableShell SFTP interactif pour naviguer et transférer des fichiers. |
![]() lsshell sysadmin / betaShell interactif parallèle avec commandes diffusées et ciblées. |
![]() lsmux sysadmin / betaEspace de travail SSH basé sur des panneaux pour les workflows multi-hôtes en terminal. |
![]() lsmon monitor / betaInterface de supervision multi-hôtes via SSH sans agents distants supplémentaires. |
![]() lssync transfer / betaSynchronisation arborescente via SSH/SFTP avec modes démon et bidirectionnel. |
![]() lsdiff sysadmin / betaComparer des fichiers distants de plusieurs hôtes dans une interface TUI synchronisée. |
![]() lspipe sysadmin / alphaSessions d'hôtes persistantes réutilisables depuis des pipelines locaux et de l'automatisation. |
lsshfstransfer / betaMonter un répertoire distant via FUSE sur Linux ou NFS sur macOS.
|
| Projet | Commande(s) lssh la plus proche | Objectif principal | En quoi il diffère de lssh |
|---|
sshs | lssh | Sélecteur d'hôtes SSH basé sur une interface TUI | Similaire dans l'esprit à un sélecteur d'hôtes ciblé, mais lssh couvre également l'exécution parallèle, le transfert, les workflows mux et les cibles basées sur des fournisseurs/connecteurs. |
ClusterSSH (cssh) | lssh -P, lsmux, lsshell | Administration interactive multi-hôte | Fort pour la saisie diffusée dans plusieurs terminaux ; lsshell et lsmux sont plus adaptés lorsque vous voulez des workflows shell synchronisés au sein d'une même suite. |
pssh | lssh -p, lscp, lssync | Outils d'exécution de commandes parallèles et de transfert | Convient bien pour les tâches CLI parallèles, tandis que lssh ajoute une sélection d'hôtes en TUI, des workflows interactifs et un ensemble d'outils multi-commandes plus intégré. |
tmuxinator | lssh -P, lsmux | Gestion de la disposition des sessions tmux | Excellent pour les espaces de travail tmux prédéfinis, mais ce n'est pas un sélecteur d'hôtes SSH ou un outil de transfert en soi. lsmux est orienté SSH dès le début. |