做了个支持多级跳板的 SSH 会话中间件,让 AI Agent 能操作堡垒机后面的服务器

jie123168 2026-07-19 20:33 1

为什么做这个


最近工作里,写代码、改文档、点网页这类事,基本已经可以交给 AI Agent 了。但一碰到服务器操作就卡住:


公司一般都有跳板机 / 堡垒机,Agent 没法直接连后面的机器,自动化就断了。


更头疼的是排查问题:经常得先登录服务器,把线上日志拷到本地,丢给 Agent 分析,再拿着它给的步骤回到线上执行。来回倒腾,特别耗时间。


所以做了 Shellink:把「多级跳板之后的那台机器」收成一个稳定会话,让 AI Agent (和人)能直接在上面执行命令、传文件、看历史。


仓库: https://github.com/jie123108/Shellink

中文文档: https://github.com/jie123108/Shellink/blob/main/README.zh-CN.md


Web UI 实时会话(经跳板到达目标机):


Web UI session via jump host




Shellink 是什么


一句话:面向 AI Agent 和人类的会话中间件( session middleware )。


本地跑一个 daemon ,持有 SSH / 本地 PTY 会话;外面用统一的 CLI (也有 TUI 、Web UI 、HTTP/WebSocket )去操作这些会话。


不是又一个 SSH GUI ,重点是:



  • 会话状态可查询( CONNECTING / WAITING_INPUT / IDLE …),方便 Agent 决策下一步

  • CLI 有稳定的 --json 输出,适合脚本和 Agent 调用

  • 需要人插手时可以切到 MANUAL 模式(比如输入 OTP )


会话 Dashboard (活跃会话列表):


Web UI dashboard




主要能力


1. 多级跳板 / 复杂登录


很多环境不是一次 ssh user@host 就结束,而是菜单、OTP 、多跳。


说明一下边界:Shellink 本身不负责自动登录。多级跳转、堡垒机菜单、OTP 等交互认证,建议用 command 类型的 profile 挂 expect 脚本处理;简单场景也可以用 sshpass(仅密码)或 sshProxyJump / ProxyCommand。Shellink 负责把登录完成后的会话管起来(执行命令、传文件、状态、审计)。


2. 跨跳板文件传输


上传/下载走已有的 PTY ,不额外要求 SFTP 。复杂跳板链路上也能把日志拉下来、把脚本推上去——正好对应「拷日志到本地再问 Agent 」那个痛点。


3. 远程编辑


shellink session edit 做精确替换,适合改配置一类操作。


4. 审计与人机协同


会话输入输出可留历史,方便回看 Agent 干了啥;敏感步骤可以人工接管。


5. 给 Agent 准备的 skill


仓库里有 shellink-cli skill ,Agent 按 CLI 接口操作即可,不必自己实现 SSH/跳板逻辑。


安装二进制( macOS / Linux ):


curl -fsSL https://raw.githubusercontent.com/jie123108/Shellink/main/install.sh -o /tmp/shellink-install.sh
cat /tmp/shellink-install.sh
sh /tmp/shellink-install.sh

或让 AI 助手直接按文档装:



请帮我安装 Shellink 及其 skills ,参考这份文档: https://raw.githubusercontent.com/jie123108/Shellink/main/AGENTS_INSTALL.md



装好后:


shellink cli                  # TUI ,会按需拉起 daemon
shellink agent-doc # 给 Agent 看的接口说明

CLI/TUI 会话视图:


CLI/TUI session view


Web UI 默认在本地:http://127.0.0.1:7070/shellink/ui/




安全提醒(重要)



  • command 类型的 profile 会以 daemon 进程用户身份执行你配置的命令,请只在受信任环境跑,并保护好 SHELLINK_TOKEN

  • 让 Agent 直连生产有真实风险:建议只读/排查类操作,或先指向非生产环境




求试用 & 反馈


欢迎有跳板机 / 堡垒机场景的同学试试。登录脚本本身用 expect 就行;我更想听的是登录之后这块好不好用:



  1. 会话与操作:状态是否清晰、命令执行是否稳、跨跳板传文件/远程编辑有没有坑

  2. 和 Agent 一起用:接 Cursor / Claude Code 等时,CLI/--json/skill 哪里别扭、缺什么

  3. 人机协同:OTP 等需要人插手时,MANUAL 模式、审计历史是否够用


有问题直接回帖或去 GitHub 提 issue 都行,谢谢。

最新回复 (0)
    没有回复
* 帖子来源V2EX
返回