作为一名 IT 从业者,你是否经常被各种 SSH 连接搞得头疼?
记密码、记 IP、记端口号… 每次连接服务器都要翻找配置文件,敲一长串命令。更别提管理几十台服务器时的痛苦了!
今天要介绍的这个开源项目,将彻底改变你管理 SSH 连接的方式。
什么是 SSHM?
SSHM 是一个美观的命令行工具,它彻底改变了你管理和连接 SSH 主机的方式。基于 Go 构建,具有直观的 TUI 界面,让 SSH 连接管理变得轻松愉快。
简单来说,SSHM 就是一个终端版的 SSH 连接管理器。它通过漂亮的文本界面(TUI),让你可以像使用图形软件一样管理 SSH 连接。
为什么选择 SSHM?
🎨 颜值即正义的界面
传统的 SSH 管理方式就是在 ~/.ssh/config
文件里写配置,然后用命令行连接。枯燥、易错、效率低。
SSHM 提供了一个精美的终端界面。你可以通过方向键浏览所有服务器,按回车键直接连接。就像在手机上选择联系人一样简单。
⚡ 闪电般的连接速度
不需要记忆复杂的命令和参数,一键连接任何主机。支持快速搜索和过滤,即使管理上百台服务器也能瞬间找到目标。
🏷️ 智能标签管理
可以为服务器添加自定义标签,比如「生产环境」「开发环境」「数据库」等。通过标签快速筛选,再也不会连错服务器。
🔒 安全性保障
SSHM 直接使用你现有的 ~/.ssh/config
文件,不会破坏任何现有配置。所有的安全设置都保持不变,只是让管理更方便。
核心功能详解
主要特性
SSHM 提供了丰富的功能来简化 SSH 管理:
界面操作
- 美观的 TUI 界面,支持键盘快捷键导航
- 智能搜索和过滤功能
- 支持按名称和最近使用时间排序
配置管理
- 添加、编辑、删除 SSH 配置
- 自动备份配置文件
- 配置验证,防止错误设置
高级特性
- ProxyJump 支持,用于堡垒机连接
- 完整的 SSH 选项支持
- 自动格式转换(命令行 ⇄ 配置文件格式)
操作界面
启动 SSHM 后,你会看到一个清晰的主机列表。界面操作非常直观:
↑/↓
或j/k
:浏览主机列表Enter
:连接到选定的主机a
:添加新主机e
:编辑选定主机d
:删除选定主机/
:搜索和过滤主机s
:切换排序方式q
:退出程序
配置文件兼容性
SSHM 的一个重要优势是与标准 SSH 配置完全兼容。它会在你的 ~/.ssh/config
文件中添加特殊的注释标签来支持扩展功能,同时保持与原生 SSH 工具的兼容性。
配置示例:
1 | # Tags: production, web, frontend |
安装指南
一键安装(推荐)
Unix/Linux/macOS
1 | curl -sSL https://raw.githubusercontent.com/Gu1llaum-3/sshm/main/install/unix.sh | bash |
Windows (PowerShell)
1 | irm https://raw.githubusercontent.com/Gu1llaum-3/sshm/main/install/windows.ps1 | iex |
手动安装
如果你更喜欢手动安装,可以从 GitHub Releases 页面下载对应平台的二进制文件:
Linux
1 | wget https://github.com/Gu1llaum-3/sshm/releases/latest/download/sshm-linux-amd64.tar.gz |
macOS
1 | wget https://github.com/Gu1llaum-3/sshm/releases/latest/download/sshm-darwin-amd64.tar.gz |
Windows
下载 zip 文件后解压到 C:\tools\
目录,并将该路径添加到系统 PATH 环境变量。
快速上手教程
启动 SSHM
安装完成后,在终端输入:
1 | sshm |
第一次运行时,SSHM 会读取你现有的 ~/.ssh/config
文件(如果存在的话)。如果没有配置文件,你会看到一个空的主机列表。
添加第一个主机
按 a
键打开添加主机表单。SSHM 会引导你填写以下信息:
- 主机名/IP:服务器地址(必填)
- 用户名:SSH 登录用户名
- 端口:SSH 端口(默认 22)
- 密钥文件:私钥路径(如
~/.ssh/id_rsa
) - 代理跳板:如果需要通过堡垒机连接
- SSH 选项:额外的 SSH 参数
- 标签:用逗号分隔的标签
例如,添加一个生产环境的 Web 服务器:
- 主机名:
192.168.1.100
- 用户名:
deploy
- 端口:
22
- 标签:
production, web
连接到主机
添加主机后,你会在列表中看到新添加的条目。使用方向键选择主机,按 Enter
键即可连接。
SSHM 会自动使用正确的 SSH 命令和参数,就像你手动输入 ssh deploy@192.168.1.100
一样。
编辑和管理主机
- 编辑主机:选择主机后按
e
键 - 删除主机:选择主机后按
d
键(会有确认提示) - 搜索主机:按
/
键,然后输入关键词 - 排序:按
s
键在不同排序方式间切换
高级使用技巧
使用自定义配置文件
默认情况下,SSHM 使用 ~/.ssh/config
。如果你有多个配置文件,可以使用 -c
参数:
1 | sshm -c /path/to/custom/ssh_config |
命令行操作
除了 TUI 界面,SSHM 也支持命令行操作:
1 | # 添加主机 |
ProxyJump 配置
对于需要通过堡垒机连接的服务器,SSHM 完美支持 ProxyJump。在添加主机时,在「代理跳板」字段填入:
1 | user@jumphost:port |
例如:admin@bastion.company.com:22
SSH 选项管理
SSHM 支持所有标准 SSH 选项。在「SSH 选项」字段中,你可以添加任何有效的 SSH 参数:
1 | -o Compression=yes -o ServerAliveInterval=60 -o StrictHostKeyChecking=no |
SSHM 会自动将这些选项转换为配置文件格式。
跨平台支持
SSHM 支持主流操作系统:
- Linux:支持 AMD64 和 ARM64 架构
- macOS:支持 Intel 和 Apple Silicon 芯片
- Windows:需要安装 OpenSSH 客户端(Windows 10/11 内置)
在 Windows 上,配置文件位于 %USERPROFILE%\.ssh\config
,与 WSL 的 SSH 配置完全兼容。
技术架构
SSHM 使用现代的 Go 技术栈构建:
- Cobra:命令行框架,提供优雅的 CLI 接口
- Bubble Tea:TUI 框架,负责终端界面渲染
- Bubbles:TUI 组件库,提供表格、表单等组件
- Lipgloss:样式库,让界面更加美观
项目结构清晰,代码质量高,易于维护和扩展。
与类似工具对比
市面上有不少 SSH 管理工具,SSHM 的优势在于:
相比传统命令行
- 可视化界面,操作直观
- 不需要记忆复杂命令
- 支持搜索和过滤
相比图形化工具
- 轻量级,启动快速
- 在服务器环境下也能使用
- 完全兼容标准 SSH 配置
相比其他 TUI 工具
- 界面更精美,用户体验好
- 功能更完整,支持所有 SSH 选项
- 活跃开发,持续更新
社区和生态
SSHM 是一个年轻但充满活力的开源项目。项目在 GitHub 上获得了不错的关注度,代码质量高,文档完善。
作者 Guillaume 对项目非常用心,经常回复社区反馈,修复 bug 和添加新功能。项目采用 MIT 许可证,对商业和个人使用都很友好。
未来发展方向
虽然 SSHM 已经很实用,但仍有改进空间:
- 配置同步功能
- 更丰富的主题选择
- 插件系统支持
- 批量操作功能
- 更多的过滤和排序选项
总结
SSHM 是一个优秀的 SSH 管理工具,它完美平衡了功能性和易用性。
无论你是管理几台开发服务器的程序员,还是要维护数百台生产服务器的运维工程师,SSHM 都能显著提升你的工作效率。
最重要的是,它完全免费开源,不会绑定你的数据,让你保持完全的控制权。
如果你厌倦了传统的 SSH 管理方式,不妨试试 SSHM。相信我,一旦用上就再也回不去了!
赶快去试试吧,你会爱上这种全新的 SSH 管理体验!