Adembc/lazyssh
GitHub: Adembc/lazyssh
lazyssh 是一个用 Go 编写的终端交互式 SSH 管理器,基于 ~/.ssh/config 提供服务器列表浏览、模糊搜索、一键连接和丰富的 SSH 配置可视化管理功能。
Stars: 3784 | Forks: 144
使用 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-
### 🚀 启动
启动应用时简洁的加载界面
### 📋 服务器管理仪表板
主仪表板显示所有已配置的服务器及其状态指示器,最常用的项固定在顶部,并提供便捷的导航
### 🔎 搜索
模糊搜索功能,可通过名称、IP 地址或标签快速查找服务器
### ➕ 添加/编辑服务器
用于管理 SSH 连接的分页界面,提供分为以下类别的丰富配置选项:
- **Basic** - 主机、用户、端口、密钥、标签
- **Connection** - 代理、超时、多路复用、规范化
- **Forwarding** - 端口转发、X11、代理
- **Authentication** - 密钥、密码、方法、算法设置
- **Advanced** - 安全、加密、环境、调试
### 🔐 连接到服务器
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)。
启动应用时简洁的加载界面
### 📋 服务器管理仪表板
主仪表板显示所有已配置的服务器及其状态指示器,最常用的项固定在顶部,并提供便捷的导航
### 🔎 搜索
模糊搜索功能,可通过名称、IP 地址或标签快速查找服务器
### ➕ 添加/编辑服务器
用于管理 SSH 连接的分页界面,提供分为以下类别的丰富配置选项:
- **Basic** - 主机、用户、端口、密钥、标签
- **Connection** - 代理、超时、多路复用、规范化
- **Forwarding** - 端口转发、X11、代理
- **Authentication** - 密钥、密码、方法、算法设置
- **Advanced** - 安全、加密、环境、调试
### 🔐 连接到服务器
SSH 连接到选定的服务器
标签:EVTX分析, Go, Ruby工具, SSH管理, 效率工具, 日志审计, 服务器管理, 终端UI, 运维工具