
Терминальный набор для удаленного доступа с поддержкой SSH, облачных инвентаризаций, коннекторов от провайдеров, параллельных команд, рабочих пространств mux, передачи файлов и мониторинга.
ls + ssh = lssh
lssh — это нативный терминальный набор инструментов для удалённого доступа, предназначенный для работы с SSH, инвентаризацией в облаке и коннекторами от провайдеров.
Он позволяет выбирать хосты из конфигурации OpenSSH, конфигурации lssh или инвентаризации провайдеров, а затем управлять ими через собственный SSH или бэкенды коннекторов, такие как AWS SSM, EC2 Instance Connect Endpoint, WinRM, Telnet и пользовательские провайдеры.
Используйте его для интерактивных оболочек, параллельных команд, mux-рабочих пространств, передачи файлов, синхронизации, монтирования и мониторинга. Хосты, работающие через коннектор, предоставляют только те операции, которые поддерживает их коннектор.
brew install blacknon/lssh/lssh
go install github.com/blacknon/lssh/cmd/lssh@latest
Функции инвентаризации и коннекторов от провайдеров используют отдельные исполняемые файлы провайдеров.
Если вы устанавливаете только cmd/lssh, эти бинарные файлы провайдеров не устанавливаются автоматически.
Для локальной разработки установите встроенные провайдеры с помощью:
mise run provider_install
Для сборок релиза установите либо комплексный архив lssh-complete_*, либо добавьте соответствующий архив lssh-providers_* из GitHub Releases.
Дополнительные сведения об установке, включая другие варианты и платформенные особенности, см. в docs/install.md.
Уже используете ~/.ssh/config?
Просто выполните:
lssh
Хотите сгенерировать конфигурацию lssh из существующей конфигурации SSH?
lssh --generate-lssh-conf > ~/.lssh.toml
lssh построен на простом рабочем процессе:
![]() Интерактивный выбор хостов
Выберите один или несколько хостов в TUI. |
![]() Параллельное выполнение команд
Выберите хосты и выполните одну и ту же команду на всех. |
![]() Mux-рабочий процесс
Откройте многопанельный терминальный рабочий процесс. |
![]() Mux-рабочий процесс с командой
Запустите mux-интерфейс и сразу выполните команду. |
Вы также можете напрямую указать один хост, если уже знаете, куда подключаться:
lssh -H my-server
Подробнее о форматах конфигурации и настройках см. в cmd/lssh/README.md.
Хотите быстро попробовать lssh с готовой к запуску локальной средой?
Начните с demo/README.md.
Для сценария с коннектором telnet и многоволновым провайдером используйте demo-telnet-provider/README.md.
lssh поддерживает как вашу существующую конфигурацию OpenSSH, так и собственный формат конфигурации.
Если вы хотите быстро начать работу, можете продолжать использовать ~/.ssh/config как есть. Если вам нужно больше метаданных о хостах и настроек, ориентированных на рабочий процесс, вы можете перейти на конфигурацию lssh.
Вы также можете сгенерировать конфигурацию lssh из существующей конфигурации SSH:
lssh --generate-lssh-conf > ~/.lssh.toml
Даже после перехода на конфигурацию lssh вы можете по-прежнему указывать на существующую конфигурацию OpenSSH и загружать хосты оттуда:
[sshconfig.default]
path = "~/.ssh/config"
Подробнее о форматах конфигурации и настройках см. в docs/configuration.md.
lssh может работать не только со статическими записями конфигурации SSH.
Провайдеры позволяют получать хосты из внешних источников инвентаризации, разрешать секреты непосредственно перед подключением и использовать не-SSH бэкенды подключения, такие как облачные управляемые коннекторы.
В версии v0.10.0 рабочие процессы с инвентаризацией через провайдеров и секретами считаются beta.
Доступ через коннекторы, отличный от собственного SSH, остаётся экспериментальным, особенно для облачных управляемых сред выполнения и не-SSH бэкендов.
Если вы хотите попробовать потоки, ориентированные на провайдеров, локально, начните с этих демонстраций:
Обзор архитектуры и протокола провайдера начните с provider/README.md. Подробности по категориям также описаны в inventory, connector, secret и mixed.
В данный репозиторий включены следующие реализации провайдеров.
|
provider-inventory-proxmox Создаёт записи хостов из инвентаризации Proxmox. |