
Uma suíte de acesso remoto nativa do terminal para SSH, inventários em nuvem, conectores baseados em provedores, comandos paralelos, workspaces mux, transferência de arquivos e monitoramento.
ls + ssh = lssh
lssh é um conjunto de ferramentas de acesso remoto nativo do terminal para fluxos de trabalho SSH, inventários em nuvem e conectores baseados em provedores.
Ele permite selecionar hosts do arquivo de configuração do OpenSSH, do próprio config lssh ou de inventários de provedores, e então operá-los através de SSH nativo ou backends de conector, como AWS SSM, EC2 Instance Connect Endpoint, WinRM, Telnet e provedores personalizados.
Use-o para shells interativos, comandos paralelos, workspaces mux, transferência de arquivos, sincronização, montagem e monitoramento. Hosts baseados em conectores expõem apenas as operações suportadas por seu conector.
brew install blacknon/lssh/lssh
go install github.com/blacknon/lssh/cmd/lssh@latest
Os recursos de inventário e conector baseados em provedores usam executáveis de provedor separados.
Se você instalar apenas cmd/lssh, esses binários de provedor não são instalados automaticamente.
Para desenvolvimento local, instale os provedores incluídos com:
mise run provider_install
Para builds de lançamento, instale o arquivo all-in-one lssh-complete_* ou adicione o arquivo lssh-providers_* correspondente dos GitHub Releases.
Para mais detalhes de instalação, incluindo outras opções e notas específicas de plataforma, veja docs/install.md.
Já usa o ~/.ssh/config?
Basta executar:
lssh
Quer gerar um config lssh a partir do seu config SSH existente?
lssh --generate-lssh-conf > ~/.lssh.toml
lssh é construído para um fluxo de trabalho simples:
Você ainda pode direcionar um único host diretamente quando já souber onde conectar:
lssh -H my-server
Para mais detalhes sobre formatos de configuração e ajustes, veja cmd/lssh/README.md.
Quer testar o lssh rapidamente com um playground local pronto para uso?
Comece por demo/README.md.
Para o fluxo do conector telnet + provedor multi-hop, use demo-telnet-provider/README.md.
O lssh suporta tanto seu arquivo de configuração OpenSSH existente quanto seu próprio formato de configuração.
Se você quiser começar rapidamente, pode continuar usando o ~/.ssh/config como está. Se quiser metadados de host mais ricos e configurações orientadas a fluxo de trabalho, pode migrar para um config lssh.
Você também pode gerar um config lssh a partir do seu config SSH existente:
lssh --generate-lssh-conf > ~/.lssh.toml
Mesmo após migrar para o config lssh, você ainda pode apontá-lo para seu arquivo OpenSSH existente e carregar hosts de lá:
[sshconfig.default]
path = "~/.ssh/config"
Para mais detalhes sobre formatos de configuração e ajustes, veja docs/configuration.md.
O lssh pode trabalhar com mais do que entradas estáticas de config SSH.
Os provedores permitem buscar hosts de fontes externas de inventário, resolver segredos momentos antes da conexão e usar backends de conexão não-SSH, como conectores gerenciados em nuvem.
Na v0.10.0, os fluxos de trabalho de inventário e segredos baseados em provedores são melhor tratados como beta.
O acesso baseado em conector além do SSH nativo ainda é experimental, especialmente para ambientes de execução gerenciados em nuvem e backends não-SSH.
Se quiser experimentar fluxos orientados a provedores localmente, comece por estas demonstrações:
Para a visão geral da arquitetura e protocolo dos provedores, comece por provider/README.md. Detalhes de categoria também são documentados em inventory, connector, secret e mixed.
Estas implementações de provedor estão atualmente incluídas neste repositório.
|
provider-inventory-proxmox Cria entradas de host a partir do inventário Proxmox. |
|
provider-connector-openssh Usa o manuseio de conexão compatível com OpenSSH como um conector baseado em provedor. |
| provider-mixed-aws-ec2 Combina inventário EC2 com conectores AWS SSM e EC2 Instance Connect Endpoint. Fluxos adjacentes ao SSH nativo são utilizáveis, enquanto o comportamento específico do conector permanece experimental. |
O projeto lssh inclui múltiplas ferramentas para fluxos de trabalho centrados em SSH.
lssh, encaminhamento e uso de rc localSe você está avaliando o lssh, estes projetos também merecem uma olhada.
Eles se sobrepõem a partes do conjunto, mas cada um geralmente cobre uma fatia mais estreita do fluxo de trabalho geral.
lssh é diferentelssh combina seleção de hosts, SSH interativo, execução paralela de comandos, encaminhamento e destinos baseados em conector/provedor.lsshell foca em fluxos de shell interativos paralelos em vez de apenas abrir vários terminais.lscp, lsftp e lssync cobrem transferência e sincronização de arquivos como comandos de primeira classe no mesmo conjunto.lsmux fornece um workspace SSH baseado em painéis em vez de apenas modelagem de sessões.lspipe mantém hosts selecionados reutilizáveis a partir de pipelines e automação locais.
![]() Seletor interativo de hosts |
![]() Execução paralela de comandos |
![]() Fluxo de trabalho mux |
![]() Fluxo de trabalho mux com comando |
|
provider-connector-telnet Acessa destinos telnet através da interface de conector. |
|
provider-connector-winrm Executa fluxos de execução de comandos em destinos WinRM. O suporte a shell interativo não está disponível na v0.10.0. |
|
provider-mixed-azure-compute Cria inventário do Azure Compute com configurações de acesso cientes de conector. |
|
provider-mixed-gcp-compute Cria inventário do Google Compute Engine com configurações de acesso cientes de conector. |
|
provider-secret-bitwarden Resolve referências de segredo do [Bitwarden](https://bitwarden.com/). |
provider-secret-onepassword Resolve referências de segredo do [1Password](https://1password.com/). |
provider-secret-custom-script Resolve referências de segredo através de scripts locais personalizados. |
|
provider-secret-os-keychain Resolve referências de segredo do keychain do sistema operacional local. |
![]() lssh core / stableAcesso SSH interativo, comandos paralelos e modos de encaminhamento. |
![]() lscp transfer / stableCópia estilo SCP via SSH/SFTP, incluindo transferências remoto-para-remoto. |
![]() lsftp transfer / stableShell SFTP interativo para navegar e transferir arquivos. |
![]() lsshell sysadmin / betaShell interativo paralelo com comandos de difusão e direcionados. |
![]() lsmux sysadmin / betaWorkspace SSH baseado em painéis para fluxos de trabalho multi-host no terminal. |
![]() lsmon monitor / betaInterface de monitoramento multi-host via SSH sem agentes remotos extras. |
![]() lssync transfer / betaSincronização de árvore via SSH/SFTP com modos daemon e bidirecional. |
![]() lsdiff sysadmin / betaCompara arquivos remotos de múltiplos hosts em uma TUI sincronizada. |
![]() lspipe sysadmin / alphaSessões de host persistentes reutilizáveis a partir de pipelines e automação locais. |
lsshfstransfer / betaMonta um diretório remoto via `FUSE no Linux` ou `NFS no macOS`. |
| Projeto | Comando(s) lssh mais próximo(s) | Foco principal | Como difere do lssh |
|---|
sshs | lssh | Seletor de hosts SSH baseado em TUI | Semelhante em espírito a um seletor de hosts focado, mas lssh também cobre execução paralela, encaminhamento, fluxos mux e destinos baseados em provedor/conector. |
ClusterSSH (cssh) | lssh -P, lsmux, lsshell | Administração interativa multi-host | Forte para digitação difusa em múltiplos terminais; lsshell e lsmux são mais adequados quando você quer fluxos de shell sincronizados dentro de um único conjunto. |
pssh | lssh -p, lscp, lssync | Ferramentas de execução paralela de comandos e transferência | Uma boa opção para trabalhos CLI paralelos, enquanto lssh adiciona seleção de hosts por TUI, fluxos interativos e um conjunto de ferramentas multi-comando mais integrado. |
tmuxinator | lssh -P, lsmux | Gerenciamento de layout de sessão tmux | Ótimo para workspaces tmux predefinidos, mas não é um seletor de hosts SSH ou ferramenta de transferência por si só. lsmux é orientado a SSH desde o início. |