SSH CLIENT WRAPPER

更快地找到并
连接 Server

用 YAML 维护主机信息,通过可搜索的终端菜单或本地 Web 界面,管理分组并打开 SSH 会话。

go install github.com/yinheli/sshw/cmd/sshw@latest
~/.sshw.yaml

$ sshw -search prod

select host

production / api-1

root@10.20.0.11:2222

$ sshw -config

✓ config UI opened in browser

交互搜索 嵌套分组 Jump Host Config Web Callback Commands

WHY SSHW

把连接信息写一次,之后只需搜索和选择

sshw 读取 YAML 或 ~/.ssh/config,自动处理用户、端口、密钥、密码、SSH Agent、跳板机和登录后命令。

sshw 交互式终端选择与连接演示
在终端中浏览配置、选择目标并打开 SSH 会话。
01

少记命令

使用别名直连,或从交互列表中选择目标,不再重复输入完整的 SSH 参数。

02

容易整理

按团队、环境或网段建立嵌套分组,大量 Server 也能保持清晰。

03

灵活认证

支持密码、私钥、Passphrase、SSH Agent 和 Keyboard Interactive。

04

本地管理

Config Web 默认只监听本机地址,保存时使用安全的原子替换流程。

INSTALL

选择一种安装方式

推荐直接下载 Release。已安装 Go 的用户也可以使用一条命令安装最新版。

GoGo Install
go install github.com/yinheli/sshw/cmd/sshw@latest
Source源码编译
git clone https://github.com/cooker/sshw.git
cd sshw
./build.sh

产物位于 dist/<os>-<arch>/sshw

QUICK START

三步打开第一个 SSH 会话

先创建配置,再添加 Server,最后运行 sshw

1

创建配置文件

sshw 会按顺序查找用户目录和当前目录中的 .sshw.sshw.yml.sshw.yaml

touch ~/.sshw.yaml
2

添加一台 Server

name 用于展示,alias 用于快捷连接。User 和 Port 可以省略。

- name: development
  alias: dev
  host: 192.168.8.35
  user: appuser
  port: 22
  keypath: ~/.ssh/id_rsa
3

选择或直接连接

不带参数时打开交互选择器。知道 Alias 时,可以直接连接。

sshw 交互选择 sshw dev Alias 直连

CONFIG WEB

在浏览器中管理分组与 Server

运行命令后会自动打开本地页面。默认只监听 127.0.0.1,终端同时显示访问地址。

打开默认配置 sshw -config

分组管理

创建、重命名、移动或删除嵌套分组,并查看每个分组中的 Server 数量。

即时搜索

按名称、Alias、Host、User、Port 或完整分组路径过滤 Server。

Server 管理

新增、编辑、复制、移动和删除 Server,配置认证、Jump Host 与回调命令。

五种语言

支持英语、简体中文、日语、韩语和越南语,并会记住本机选择。

保存更安全

界面显示未保存状态。写入时使用同目录临时文件和原子替换,并将新配置权限设置为 0600

CONFIG REFERENCE

常用配置字段

Server 是普通节点;Group 是带有 children 数组的节点。

字段作用默认值
name选择器中的显示名称
aliassshw <alias> 快捷连接
host主机名或 IP 地址
userSSH 用户名root
portSSH 端口22
keypath私钥路径,支持 ~
agentpathSSH Agent Socket 路径
jumpJump Host 定义
children嵌套 Server 或 Group
callback-shells登录后发送的命令

配置文件查找顺序

  1. ~/.sshw
  2. ~/.sshw.yml
  3. ~/.sshw.yaml
  4. ./.sshw
  5. ./.sshw.yml
  6. ./.sshw.yaml

找到第一个存在的文件后停止查找。

- name: production
  children:
    - name: api-1
      alias: api
      user: deploy
      host: 10.20.0.11
    - name: worker-1
      user: deploy
      host: 10.20.0.12

BUILD

本地编译与交叉编译

build.sh 会注入版本信息,并把不同平台的产物放入独立目录。

# 当前平台
./build.sh

# Linux AMD64
GOOS=linux GOARCH=amd64 VERSION=dev ./build.sh

# 自定义输出目录
OUTPUT_DIR=/tmp/sshw-build ./build.sh
GOOS目标操作系统
GOARCH目标 CPU 架构
VERSION写入二进制的版本
OUTPUT_DIR产物根目录

FAQ & SAFETY

常见问题与安全提示

可以继续使用原来的 YAML 配置吗?

可以。新版保持现有 YAML 字段和结构兼容,Config Web 只是提供另一种编辑方式。

Config Web 会暴露到公网吗?

默认不会。服务监听 127.0.0.1:7899,仅本机可访问。不要随意绑定公开网络地址。

搜索没有结果后需要重新运行吗?

不需要。可以继续输入或按 Backspace 回退,结果会即时恢复。

可以把密码写进公开仓库吗?

不要提交真实密码、Passphrase、私钥或生产主机信息。优先使用私钥或 SSH Agent。

READY TO CONNECT?

从第一台 Server 开始

安装 sshw,写入一条配置,然后运行 sshw