项目概览

属性详情
项目goto
作者grafviktor
语言Go
Stars512
LicenseMIT
链接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删除选中连接
qCtrl+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 EditorGUI 应用,可视化编辑macOS 用户
Termius跨平台,云端同步需要云同步的用户
mosh移动网络优化网络不稳定环境

goto 的优势在于纯粹的终端原生体验——无需离开命令行环境,无需图形界面依赖,是硬核开发者的理想选择。

项目活跃度

  • 最近更新:2026-03-28(活跃维护中)
  • 首次发布:2023-10-18
  • 贡献者:持续增长中

项目采用 MIT 协议开源,代码简洁规范,非常适合学习和二次开发。

总结

如果你厌倦了在终端里反复输入 ssh -i ~/.ssh/xxx user@host -p 2222 这样的长命令,goto 值得一试。它用不到 500KB 的二进制体积,解决了 SSH 连接管理的痛点,是终端工作流中一个精致而实用的小工具。

对于追求效率和简洁的开发者来说,这种小而美的工具往往比臃肿的全功能套件更实用。