goto - 简洁优雅的终端 SSH 管理器
项目概览
| 属性 | 详情 |
|---|---|
| 项目 | goto |
| 作者 | grafviktor |
| 语言 | Go |
| Stars | 512 |
| License | MIT |
| 链接 | https://github.com/grafviktor/goto |
简介
goto 是一款专为开发者设计的终端 SSH 管理工具。它摒弃了复杂的配置和繁琐的命令行参数,用一个简洁的 TUI(文本用户界面)将所有的 SSH 连接集中管理。对于那些经常需要连接多台服务器的开发者来说,它提供了一个比传统 ~/.ssh/config 更友好、更高效的解决方案。
核心特性
🎯 直观的服务器管理
- 以列表形式展示所有配置的 SSH 连接
- 支持分组和搜索,快速定位目标服务器
- 可视化界面让操作一目了然
⚡ 快速连接
- 选中即连,无需手动输入冗长的命令
- 支持自定义连接参数(端口、用户名、私钥等)
- 内置连接历史记录
🔧 高级功能
- 支持跳板机(Bastion/Jump Host)配置
- 可集成自定义脚本,连接后自动执行预设命令
- 本地端口转发管理
🖥️ 优雅的终端体验
- 基于 Bubble Tea 框架构建,界面流畅
- 支持鼠标操作
- 响应式设计,适配各种终端尺寸
安装
二进制下载
项目 Releases 页面提供预编译的二进制文件,支持 Linux、macOS 和 Windows:
# Linux/macOS
curl -L https://github.com/grafviktor/goto/releases/latest/download/goto-linux-amd64 -o goto
chmod +x goto
sudo mv goto /usr/local/bin/
从源码构建
git clone https://github.com/grafviktor/goto.git
cd goto
go build -o goto
包管理器
# macOS (Homebrew - 待确认)
brew install goto
使用指南
首次启动
运行 goto 命令即可进入交互界面:
goto
首次使用时会自动创建配置文件,位于 ~/.config/goto/config.yaml。
添加服务器
在界面中按 a 键添加新连接:
- 名称:给连接起个易记的别名
- 主机:服务器 IP 或域名
- 端口:SSH 端口(默认 22)
- 用户:登录用户名
- 私钥:SSH 密钥路径(可选,默认使用 SSH agent)
常用快捷键
| 按键 | 功能 |
|---|---|
↑/↓ 或 k/j | 上下移动选择 |
Enter | 连接到选中的服务器 |
a | 添加新连接 |
e | 编辑选中连接 |
d | 删除选中连接 |
q 或 Ctrl+C | 退出程序 |
/ | 搜索过滤 |
配置文件示例
hosts:
- name: production-web
host: 192.168.1.10
port: 22
user: deploy
private_key: ~/.ssh/id_rsa_production
- name: staging-db
host: staging.example.com
port: 2222
user: admin
# 使用 SSH agent 自动认证
适用场景
多服务器运维
同时管理开发、测试、生产环境的多台服务器,避免记忆大量 IP 和配置。
团队协作
将配置文件纳入版本控制,团队成员共享统一的连接配置。
云资源管理
配合云服务商的弹性 IP 和标签系统,快速建立连接映射。
同类工具对比
| 工具 | 特点 | 适用人群 |
|---|---|---|
| goto | 简洁 TUI,零配置上手 | 日常 SSH 用户 |
| SSH Config Editor | GUI 应用,可视化编辑 | macOS 用户 |
| Termius | 跨平台,云端同步 | 需要云同步的用户 |
| mosh | 移动网络优化 | 网络不稳定环境 |
goto 的优势在于纯粹的终端原生体验——无需离开命令行环境,无需图形界面依赖,是硬核开发者的理想选择。
项目活跃度
- 最近更新:2026-03-28(活跃维护中)
- 首次发布:2023-10-18
- 贡献者:持续增长中
项目采用 MIT 协议开源,代码简洁规范,非常适合学习和二次开发。
总结
如果你厌倦了在终端里反复输入 ssh -i ~/.ssh/xxx user@host -p 2222 这样的长命令,goto 值得一试。它用不到 500KB 的二进制体积,解决了 SSH 连接管理的痛点,是终端工作流中一个精致而实用的小工具。
对于追求效率和简洁的开发者来说,这种小而美的工具往往比臃肿的全功能套件更实用。