Lazyssh:为终端用户打造的智能 SSH 管理工具

你是否曾经在管理多台服务器时,因为频繁查找 IP 地址、输入冗长的 SSH 命令而感到繁琐?是否希望有一个集中化的工具,能够直观地展示所有服务器,并支持快速连接与管理?Lazyssh 正是为解决这些问题而生的终端工具。

Lazyssh 是一个基于终端的交互式 SSH 管理器,其设计灵感来源于 lazydocker 和 k9s 等工具,致力于为用户提供一个高效、直观的服务器管理界面。它直接读取并操作你的 SSH 配置文件(~/.ssh/config),让你无需跳出终端,即可完成服务器的连接、管理和文件传输。


功能一览:重新定义 SSH 管理体验

服务器管理

Lazyssh 允许用户在一个统一的界面中管理所有通过 SSH 连接的服务器。你不再需要手动编辑配置文件或记忆复杂的命令。

  • 自动读取与展示:自动解析 ~/.ssh/config 文件,并以可滚动列表的形式展示所有已配置的服务器。
  • 添加新服务器:通过直观的表单界面添加新服务器,支持设置别名、主机/IP、用户名、端口和身份文件。
  • 编辑与删除:直接修改或删除现有的服务器配置,无需手动打开和编辑配置文件。
  • 置顶功能:可以将常用服务器置顶,方便快速访问。
  • 服务器状态检测:内置 Ping 功能,实时检查服务器是否在线。

快速导航与连接

借助强大的搜索与排序功能,你可以迅速定位目标服务器并建立连接。

  • 模糊搜索:支持根据别名、IP 地址或标签进行实时搜索。
  • 快速连接:选中目标服务器后,按 Enter 键即可建立 SSH 连接。
  • 标签分类:可为服务器添加标签(例如 prod、dev、test),实现分组过滤。
  • 灵活排序:支持按别名或最近连接时间排序,并可以切换升序/降序。

安全性与可靠性

Lazyssh 在设计上充分考虑了安全性,它仅作为现有 SSH 配置的界面包装,不引入任何额外的风险。

  • 依赖系统 SSH:所有连接均通过系统原生 SSH 客户端(OpenSSH)实现。
  • 不处理敏感信息:用户的私钥、密码等凭证信息不会被存储或传输。
  • 权限保留:在修改 SSH 配置文件时自动备份,并严格保留文件权限。

即将推出的功能

开发团队计划在后续版本中加入更多实用功能:

  • 文件传输:通过图形化界面在本地与服务器之间复制文件。
  • 端口转发:支持直接从 UI 配置本地与远程端口转发。
  • 增强的密钥管理:包括使用默认公钥、手动粘贴公钥、生成新密钥对并自动部署等功能。

如何安装 Lazyssh

Lazyssh 支持多种安装方式,你可以根据操作系统和个人偏好选择最适合的一种。

通过 Homebrew 安装(macOS 用户)

如果你使用的是 macOS,可以通过 Homebrew 快速安装:

brew install Adembc/homebrew-tap/lazyssh

下载预编译二进制文件

你也可以从 GitHub Releases 页面下载最新版本的二进制文件,支持多种操作系统和架构(包括 Darwin/Linux 和 amd64/arm64)。以下脚本可自动下载并安装最新版本:

# 获取最新版本号
LATEST_TAG=$(curl -fsSL https://api.github.com/repos/Adembc/lazyssh/releases/latest | jq -r .tag_name)
# 下载对应系统架构的压缩包
curl -LJO "https://github.com/Adembc/lazyssh/releases/download/${LATEST_TAG}/lazyssh_$(uname)_$(uname -m).tar.gz"
# 解压文件
tar -xzf lazyssh_$(uname)_$(uname -m).tar.gz
# 将可执行文件移动到 PATH 目录
sudo mv lazyssh /usr/local/bin/
# 运行 Lazyssh
lazyssh

从源码编译安装

如果你希望从源码构建,可以克隆仓库并编译:

git clone https://github.com/Adembc/lazyssh.git
cd lazyssh
make build
./bin/lazyssh

或者直接运行:

make run

使用指南与快捷键

Lazyssh 提供了丰富的键盘快捷键,帮助用户高效操作:

按键 功能
/ 切换搜索框
↑/↓ 在服务器列表中上下导航
Enter SSH 连接到选中的服务器
c 复制 SSH 命令到剪贴板
g Ping 选中的服务器
r 刷新后台数据
a 添加新服务器
e 编辑服务器配置
t 编辑标签
d 删除服务器
p 置顶或取消置顶服务器
s 切换排序字段
S 反转排序顺序
q 退出程序

提示:界面顶部的提示栏会显示最常用的快捷键,方便随时查阅。


实际应用场景

场景一:快速连接与管理多台服务器

假设你是一名运维工程师,需要同时管理数十台分布在不同的环境中的服务器。使用传统方式,每次连接都需要输入完整的 SSH 命令或频繁切换终端标签。而通过 Lazyssh,你可以在一个界面中清晰看到所有服务器,并通过搜索、标签和排序功能快速定位目标机器。

操作示例

  1. 输入 / 进入搜索模式,输入“prod”筛选所有生产环境服务器。
  2. 使用方向键选择目标服务器,按 Enter 建立连接。
  3. 连接结束后返回 Lazyssh,继续管理其他服务器。

场景二:动态添加与配置新服务器

当需要添加一台新服务器时,传统方法需要手动编辑 ~/.ssh/config 文件,并确保语法正确。Lazyssh 提供了可视化表单,大大降低了操作复杂度。

操作示例

  1. a 键打开添加服务器表单。
  2. 填写别名、主机IP、用户名、端口等信息。
  3. 保存后,新服务器立即出现在列表中,并可直接连接。

场景三:通过标签实现服务器分组

你可以为服务器添加“web”、“database”、“logging”等标签,之后可以通过标签快速过滤相关服务器。这一功能在复杂环境中尤为实用。


作者反思

在使用和推广 Lazyssh 的过程中,我深刻体会到,一个好的工具不仅应该功能强大,更重要的是要符合用户的实际使用习惯。Lazyssh 并没有引入任何新的技术架构,而是着眼于优化现有工作流程,减少那些重复且容易出错的机械操作。这种“减法思维”往往是提升效率的关键。

此外,安全性往往是这类工具用户最关心的问题。我们在设计之初就决定,Lazyssh 绝不存储、传输或处理任何敏感信息。所有 SSH 操作均通过系统原生工具完成,最大程度降低了安全风险。这一点也得到了早期用户的高度认可。


常见问题(FAQ)

1. Lazyssh 是否支持 Windows 系统?

目前官方预编译版本主要支持 macOS 和 Linux系统。Windows 用户可能需要从源码编译安装。

2. 是否需要提前配置 SSH config 文件才能使用?

不需要。如果还没有 SSH 配置文件,Lazyssh 会自动创建。你也可以直接通过 Lazyssh 添加和管理所有服务器。

3. 是否支持通过跳板机(Jump Host)连接?

当前版本尚未直接支持跳板机配置,但你可以手动在 SSH config 中设置 ProxyJump 相关配置,Lazyssh 可以正常读取和使用这些配置。

4. 数据是否会被发送到远程服务器?

不会。所有配置数据仅存储在本地,Lazyssh 不会收集或发送任何用户数据。

5. 是否可自定义快捷键?

目前快捷键为内置设定,暂不支持自定义。但开发者团队正在考虑在未来版本中加入这一功能。

6. 如何报告问题或提出功能建议?

你可以通过 GitHub Issues 页面提交问题或建议,开发团队通常会很快响应。

7. 是否支持多因素认证(MFA)?

支持。由于 Lazyssh 直接使用系统 SSH 客户端,因此任何 SSH 原生支持的身份验证方式都可以正常工作,包括 MFA。

8. 是否可同时管理多个 SSH config 文件?

当前版本仅支持默认的 ~/.ssh/config 文件,但未来可能会增加多文件支持。


总结

Lazyssh 通过其简洁而强大的终端界面,彻底改变了用户管理 SSH 服务器的方式。无论是快速连接、服务器管理,还是通过标签和搜索提升效率,它都表现卓越。更重要的是,它在增强功能的同时没有引入任何额外的安全风险,所有操作都基于成熟且安全的 SSH 协议。

如果你经常需要与多台服务器打交道,不妨尝试一下 Lazyssh。它可能会为你节省大量时间,并让日常运维工作变得更加轻松愉快。