Adembc/lazyssh

GitHub: Adembc/lazyssh

lazyssh 是一个用 Go 编写的终端交互式 SSH 管理器,基于 ~/.ssh/config 提供服务器列表浏览、模糊搜索、一键连接和丰富的 SSH 配置可视化管理功能。

Stars: 3784 | Forks: 144

lazyssh logo
Lazyssh 是一个基于终端的交互式 SSH 管理器,灵感来自 lazydocker 和 k9s 等工具——但它是专门为直接在终端中管理你的服务器集群而构建的。
使用 lazyssh,你可以快速导航、连接、管理,并在本地机器和任何定义在 `~/.ssh/config` 中的服务器之间传输文件。无需再记忆 IP 地址或运行冗长的 scp 命令——只需一个简洁的、键盘驱动的 UI。 ## ✨ 功能 ### 服务器管理 - 📜 从你的 `~/.ssh/config` 中读取并展示服务器列表,支持滚动浏览。 - ➕ 通过 UI 添加新服务器,提供全面的 SSH 配置选项。 - ✏ 直接在 UI 中通过分页界面编辑现有服务器条目。 - 🗑 安全删除服务器条目。 - 📌 固定/取消固定服务器,将最常用的保持在顶部。 - 🏓 Ping 服务器以检查状态。 ### 快速服务器导航 - 🔍 按别名、IP 或标签进行模糊搜索。 - 🖥 一键(Enter)SSH 连接到选定的服务器。 - 🏷 为服务器打标签(例如:prod、dev、test)以便快速筛选。 - ↕️ 按别名或最近 SSH 连接时间排序(支持切换和倒序)。 ### 高级 SSH 配置 - 🔗 端口转发(LocalForward、RemoteForward、DynamicForward)。 - 🚀 连接多路复用,加快后续连接速度。 - 🔐 高级身份验证选项(公钥、密码、代理转发)。 - 🔒 安全设置(加密算法、MACs、密钥交换算法)。 - 🌐 代理设置(ProxyJump、ProxyCommand)。 - ⚙️ 分页界面中组织的丰富 SSH config 选项。 ### 密钥管理 - 🔑 SSH 密钥自动补全,自动检测可用密钥。 - 📝 智能密钥选择,支持多密钥。 ### 即将推出 - 📁 通过便捷的选择器 UI 在本地和服务器之间复制文件。 - 🔑 SSH 密钥部署功能: - 使用默认的本地公钥(`~/.ssh/id_ed25519.pub` 或 `~/.ssh/id_rsa.pub`) - 手动粘贴自定义公钥 - 生成新的密钥对并部署 - 自动以正确的权限将密钥追加到 `~/.ssh/authorized_keys` ## 🔐 安全提示 lazyssh 不会引入任何新的安全风险。 它仅仅是为你现有的 `~/.ssh/config` 文件提供了一个 UI/TUI 包装。 - 所有 SSH 连接均通过你系统的原生 ssh 二进制文件(OpenSSH)执行。 - 私钥、密码和凭证永远不会被 lazyssh 存储、传输或修改。 - 你现有的 IdentityFile 路径和 ssh-agent 集成将保持原样运行。 - lazyssh 仅读取和更新你的 `~/.ssh/config`。在进行任何更改之前,会自动创建该文件的备份。 - 你的 SSH config 的文件权限将被保留,以确保安全。 ## 🛡️ 配置安全:非破坏性写入与备份 - 非破坏性编辑:lazyssh 仅将最少量的必要更改写入你的 ~/.ssh/config。它使用的解析器会保留现有的注释、空格、顺序以及它未触及的任何设置。你手动编写的注释和格式将保持原样。 - 原子写入:更新会被写入一个临时文件,然后原子性地重命名覆盖原文件,从而最大限度地降低写入不完整的风险。 - 备份: - 一次性原始备份:在 lazyssh 首次进行更改之前,它会在你的 SSH config 旁创建一个名为 config.original.backup 的单一快照。如果此文件已存在,则永远不会被重新创建或覆盖。 - 滚动备份:在随后的每次保存时,lazyssh 还会创建一个带有时间戳的备份,命名为:~/.ssh/config--lazyssh.backup。该应用最多保留 10 个此类备份,并自动删除最旧的备份。 ## 📷 截图
### 🚀 启动 App starting splash/loader 启动应用时简洁的加载界面 ### 📋 服务器管理仪表板 Server list view 主仪表板显示所有已配置的服务器及其状态指示器,最常用的项固定在顶部,并提供便捷的导航 ### 🔎 搜索 Fuzzy search servers 模糊搜索功能,可通过名称、IP 地址或标签快速查找服务器 ### ➕ 添加/编辑服务器 Add a new server 用于管理 SSH 连接的分页界面,提供分为以下类别的丰富配置选项: - **Basic** - 主机、用户、端口、密钥、标签 - **Connection** - 代理、超时、多路复用、规范化 - **Forwarding** - 端口转发、X11、代理 - **Authentication** - 密钥、密码、方法、算法设置 - **Advanced** - 安全、加密、环境、调试 ### 🔐 连接到服务器 SSH connection details SSH 连接到选定的服务器
## 📦 安装 ### 选项 1:Homebrew (macOS) ``` brew install Adembc/homebrew-tap/lazyssh ``` ### 选项 2:从 Releases 下载二进制文件 从 [GitHub Releases](https://github.com/Adembc/lazyssh/releases) 下载。你可以使用下面的代码片段自动为你的 OS/ARCH 获取最新版本(支持 Darwin/Linux 和 amd64/arm64): ``` # 检测最新版本 LATEST_TAG=$(curl -fsSL https://api.github.com/repos/Adembc/lazyssh/releases/latest | jq -r .tag_name) # 为您的系统下载正确的 binary curl -LJO "https://github.com/Adembc/lazyssh/releases/download/${LATEST_TAG}/lazyssh_$(uname)_$(uname -m).tar.gz" # 解压 binary tar -xzf lazyssh_$(uname)_$(uname -m).tar.gz # 移动到 /usr/local/bin 或您的 PATH 中的其他目录 sudo mv lazyssh /usr/local/bin/ # 尽情享用! lazyssh ``` ### 选项 3:从源码构建 ``` # Clone 该 repository git clone https://github.com/Adembc/lazyssh.git cd lazyssh # 为 macOS 构建 make build ./bin/lazyssh # 或者直接运行它 make run ``` ## ⌨️ 快捷键 | 按键 | 操作 | | ----- | --------------------- | | / | 切换搜索栏 | | ↑↓/jk | 导航服务器 | | Enter | SSH 连接到选定服务器 | | c | 复制 SSH 命令到剪贴板 | | g | Ping 选定服务器 | | r | 刷新后台数据 | | a | 添加服务器 | | e | 编辑服务器 | | t | 编辑标签 | | d | 删除服务器 | | p | 固定/取消固定服务器 | | s | 切换排序字段 | | S | 反转排序顺序 | | q | 退出 | **在服务器表单中:** | 按键 | 操作 | | ------ | ---------- | | Ctrl+H | 上一页 | | Ctrl+L | 下一页 | | Ctrl+S | 保存 | | Esc | 取消 | 提示:列表顶部的提示栏显示了最实用的快捷方式。 ## 🙏 致谢 - 使用 [tview](https://github.com/rivo/tview) 和 [tcell](https://github.com/gdamore/tcell) 构建。 - 灵感来自 [k9s](https://github.com/derailed/k9s) 和 [lazydocker](https://github.com/jesseduffield/lazydocker)。
标签:EVTX分析, Go, Ruby工具, SSH管理, 效率工具, 日志审计, 服务器管理, 终端UI, 运维工具