Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计异常

ssh-skillssh 技能

Agent Skill

ssh-skill 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

1,028

周安装

42

GitHub Stars

325

下载量

333
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:ssh-skill(ssh 技能)
来源仓库:https://github.com/badseal/ssh-skill
仓库路径:skills/ssh-skill
安装命令:
npx skills add https://github.com/badseal/ssh-skill --skill ssh-skill
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/badseal/ssh-skill --skill ssh-skill

简介

ssh-skill 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。

  • 可结合来源仓库、安装命令和原始 README 继续核验具体用法。
  • 安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。
  • npx skills add https://github.com/badseal/ssh-skill --skill ssh-skill
  • https://github.com/badseal/ssh-skill/tree/main/skills/ssh-skill

SKILL.md

SSH Skill v3.3

高性能 SSH 操作技能,支持守护进程长连接、自动连接复用、跳板机、批量并发、服务器间直接传输、自动错误恢复。

快捷命令

当用户通过 /ssh-skill <参数> 调用本 skill 时,根据参数执行对应操作:

/ssh-skill list

列出所有已配置的服务器。执行以下步骤:

  1. 运行命令获取数据:
python ~/.claude/skills/ssh-skill/scripts/ssh_config_manager_v3.py list-servers
  1. 解析返回的 JSON 数据
  2. Markdown 表格 格式展示,列:序号、别名、备注(description)、标签(tags)、位置(location)、认证方式(auth)、用户名(user)
  3. 在表格末尾显示服务器总数

表格示例格式:

| # | 别名 | 备注 | 标签 | 位置 | 认证 | 用户名 |
|---|------|------|------|------|------|--------|
| 1 | mgmt-01 | 管理服务器 | 管理,Warpgate | 丰台机房 | 密钥 | root |

/ssh-skill find <关键词>

查找匹配的服务器,格式同 list。

/ssh-skill help

展示 SSH Skill 的帮助文档。以 Markdown 格式输出以下内容:

SSH Skill v3.3 - 高性能 SSH 操作技能

核心特点:

  • 守护进程长连接:首次连接后自动启动守护进程,后续命令响应时间从 ~0.45s 降至 ~0.12s
  • 自动连接复用:多个 Claude Code 实例可共享同一守护进程
  • SFTP 高级传输:支持断点续传、进度显示、目录递归上传/下载
  • 服务器间直接传输:支持服务器到服务器的文件直接传输,无需本地中转
  • SSH 隧道:支持本地端口转发,访问远程内网服务(数据库、Web 服务等)
  • 跳板机支持:通过 ProxyJump 自动处理多级跳板机
  • 批量并发操作:支持对多台服务器并发执行命令
  • 自动错误恢复:SSH 连接断开自动重连(最多 3 次)

快捷命令:

  • /ssh-skill list - 列出所有已配置的服务器
  • /ssh-skill find <关键词> - 查找匹配的服务器
  • /ssh-skill transfer <源> <源路径> <目标> <目标路径> - 服务器间文件传输
  • /ssh-skill tunnel <别名> <端口> - 启动 SSH 隧道
  • /ssh-skill help - 显示此帮助信息

常用操作:

  1. 执行远程命令: 在 <别名> 上执行 <命令>
  2. 上传文件: 上传 <本地路径> 到 <别名> 的 <远程路径>
  3. 下载文件: 从 <别名> 下载 <远程路径> 到 <本地路径>
  4. 服务器间传输: 从 <源别名> 传输 <路径> 到 <目标别名> 的 <路径> 将 <别名A> 的文件迁移到 <别名B>
  5. SSH 隧道: 建立到 <别名> 的 MySQL 隧道 连接 <别名> 的数据库 访问 <别名> 的内部服务
  6. 批量操作: 在所有服务器上执行 <命令> 在生产环境服务器上执行 <命令>

配置管理:

  • 配置文件位置:~/.ssh/config
  • 使用标准 OpenSSH 格式 + 注释元数据
  • 支持密钥认证和密码认证
  • 支持 ProxyJump 跳板机配置

性能对比:

  • 直连模式:单次命令 ~0.45s,连续 10 条 ~4.5s
  • 守护进程模式:单次命令 ~0.12s,连续 10 条 ~1.2s

更多详细信息请参考 SKILL.md 文档。

其他参数

将参数作为用户意图理解,按照下方调用规则执行对应的 SSH 操作。

CRITICAL: 调用规则

路径说明

默认路径~/.claude/skills/ssh-skill/scripts

  • ~ 会自动展开为用户家目录(Windows 和 Linux 通用)
  • Windows: C:\Users\用户名\.claude\skills\ssh-skill\scripts
  • Linux: /home/用户名/.claude/skills/ssh-skill/scripts

项目目录中的 skill:如果 skill 放在项目的 .claude/skills/ssh-skill/ 中,使用相对路径:

.claude/skills/ssh-skill/scripts

路径自动识别:Python 的 os.path.expanduser() 会自动处理 ~,无需手动替换。

调用格式(唯一正确方式)

MUST: 使用 python ~/.claude/skills/ssh-skill/scripts/脚本名.py 格式。使用别名(alias)标识服务器。

NEVER: 不要使用 cd 到脚本目录再执行,不要使用反斜杠 \,不要直接写 sshscp 命令。

执行远程命令

python ~/.claude/skills/ssh-skill/scripts/ssh_execute.py <别名> "<命令>"

可选参数:--timeout <秒> --no-daemon

ssh_execute.py 会自动检测守护进程:有则走长连接(~0.12s),无则自动启动守护进程。

上传文件

MSYS_NO_PATHCONV=1 python ~/.claude/skills/ssh-skill/scripts/ssh_upload.py <别名> "<本地路径>" "<远程路径>"

可选参数:--resume(断点续传) --recursive(目录递归上传) --no-progress(禁用进度输出)

下载文件

MSYS_NO_PATHCONV=1 python ~/.claude/skills/ssh-skill/scripts/ssh_download.py <别名> "<远程路径>" "<本地路径>"

可选参数:--resume(断点续传) --recursive(目录递归下载) --no-progress(禁用进度输出)

CRITICAL: 上传/下载命令必须MSYS_NO_PATHCONV=1 前缀,防止 Windows MSYS bash 将远程路径(如 /tmp/file)转换为 Windows 路径。

服务器间传输

# 自动模式(推荐)- 根据文件大小和网络环境自动选择最优方式
MSYS_NO_PATHCONV=1 python "~/.claude/skills/ssh-skill/scripts/ssh_server_transfer.py" <源别名> "<源路径>" <目标别名> "<目标路径>"

# 强制直连模式(大文件推荐,数据直接在服务器间传输)
MSYS_NO_PATHCONV=1 python "~/.claude/skills/ssh-skill/scripts/ssh_server_transfer.py" <源别名> "<源路径>" <目标别名> "<目标路径>" --mode direct

# 强制流式转发(小文件或服务器间网络不通时)
MSYS_NO_PATHCONV=1 python "~/.claude/skills/ssh-skill/scripts/ssh_server_transfer.py" <源别名> "<源路径>" <目标别名> "<目标路径>" --mode stream

# 混合模式(先尝试直连,失败后自动降级到流式)
MSYS_NO_PATHCONV=1 python "~/.claude/skills/ssh-skill/scripts/ssh_server_transfer.py" <源别名> "<源路径>" <目标别名> "<目标路径>" --mode hybrid

# 使用 rsync(仅直连模式,支持增量同步)
MSYS_NO_PATHCONV=1 python "~/.claude/skills/ssh-skill/scripts/ssh_server_transfer.py" <源别名> "<源路径>" <目标别名> "<目标路径>" --use-rsync

可选参数:--mode <auto|direct|stream|hybrid>(传输模式) --use-rsync(使用 rsync) --no-progress(禁用进度) --size-threshold <MB>(大小阈值,默认 10) --timeout <秒>(超时,默认 300)

传输模式说明:

模式适用场景数据流向优点
直连 (direct)大文件、服务器间网络通源服务器 → 目标服务器速度快,不占本地带宽
流式 (stream)小文件、网络不通源 → 本地 → 目标(流式)无需服务器间配置
混合 (hybrid)不确定环境先尝试直连,失败降级自动适应
自动 (auto)默认智能判断最优选择

CRITICAL: 服务器间传输命令也必须MSYS_NO_PATHCONV=1 前缀。

批量操作

# 对所有服务器执行
python "~/.claude/skills/ssh-skill/scripts/ssh_cluster.py" "<命令>" --parallel

# 对指定别名列表执行
python "~/.claude/skills/ssh-skill/scripts/ssh_cluster.py" "<命令>" --hosts "DEV-002,DEV-003" --parallel

# 按环境过滤
python "~/.claude/skills/ssh-skill/scripts/ssh_cluster.py" "<命令>" --environment production --parallel

# 按标签过滤
python "~/.claude/skills/ssh-skill/scripts/ssh_cluster.py" "<命令>" --tags "web,nginx" --parallel

可选参数:--timeout <秒> --health-check --max-workers <数量>

配置管理

# 列出所有服务器
python "~/.claude/skills/ssh-skill/scripts/ssh_config_manager_v3.py" list-servers

# 按环境过滤
python "~/.claude/skills/ssh-skill/scripts/ssh_config_manager_v3.py" list-servers --environment production

# 查找服务器(支持别名和描述模糊查找)
python "~/.claude/skills/ssh-skill/scripts/ssh_config_manager_v3.py" find "<关键词>"

# 创建配置
python "~/.claude/skills/ssh-skill/scripts/ssh_config_manager_v3.py" create --alias <别名> --host <IP> --user <用户名> --key <密钥文件> --environment <环境>

# 更新配置(只更新提供的字段,其他字段保持不变)
python "~/.claude/skills/ssh-skill/scripts/ssh_config_manager_v3.py" update <别名> --description "新描述" --tags tag1 tag2 tag3
python "~/.claude/skills/ssh-skill/scripts/ssh_config_manager_v3.py" update <别名> --environment production --location "新位置"
python "~/.claude/skills/ssh-skill/scripts/ssh_config_manager_v3.py" update <别名> --host <新IP> --port <新端口>

# 删除配置
python "~/.claude/skills/ssh-skill/scripts/ssh_config_manager_v3.py" delete <别名>

SSH Tunnel(端口转发)

本地端口转发 - 通过 SSH 隧道访问远程服务

# 启动 tunnel(自动分配本地端口)
python "~/.claude/skills/ssh-skill/scripts/ssh_tunnel.py" start <别名> --remote-port <端口>

# 指定本地端口
python "~/.claude/skills/ssh-skill/scripts/ssh_tunnel.py" start <别名> --local-port <本地端口> --remote-port <远程端口>

# 转发到远程的其他主机
python "~/.claude/skills/ssh-skill/scripts/ssh_tunnel.py" start <别名> --remote-host <远程主机> --remote-port <端口>

# 列出所有活动的 tunnel
python "~/.claude/skills/ssh-skill/scripts/ssh_tunnel.py" list

# 查看 tunnel 状态
python "~/.claude/skills/ssh-skill/scripts/ssh_tunnel.py" status <tunnel-id>

# 停止 tunnel
python "~/.claude/skills/ssh-skill/scripts/ssh_tunnel.py" stop <tunnel-id>

# 停止服务器的所有 tunnel
python "~/.claude/skills/ssh-skill/scripts/ssh_tunnel.py" stop-all <别名>

使用场景

  • 连接远程数据库(MySQL、PostgreSQL、Redis)
  • 访问内部 Web 服务(管理后台、监控面板)
  • 调试内部 API 接口
  • 访问其他内部服务(Elasticsearch、RabbitMQ)

特性

  • 守护进程模式运行
  • 自动重连和心跳检测
  • 空闲 30 分钟自动退出
  • 支持跳板机(ProxyJump)
  • 只监听 localhost(安全)

示例

# 连接远程 MySQL
python ssh_tunnel.py start prod-db-01 --remote-port 3306
# 返回:本地端口 10001

# 使用 tunnel 连接数据库
mysql -h 127.0.0.1 -P 10001 -u root -p

# 访问内部 Web 服务
python ssh_tunnel.py start prod-web-01 --remote-port 8080
# 然后在浏览器访问 http://127.0.0.1:10002

配置文件

存储位置

~/.ssh/config(标准 OpenSSH 配置文件)

配置格式

每个服务器由 Host 块和注释元数据组成:

# ===== prod-web-01 =====
# description: 生产环境 Web 服务器
# environment: production
# tags: web,nginx,production
# location: 阿里云-北京
# password:
# created_at: 2026-03-01 12:00:00
# updated_at: 2026-03-01 12:00:00
Host prod-web-01
    HostName 192.168.1.100
    User root
    IdentityFile ~/.ssh/id_rsa
    Port 22

密码认证配置

密码存储在注释中(SSH config 不原生支持密码字段):

# ===== dev-server =====
# description: 开发服务器
# environment: development
# password: your-password
Host dev-server
    HostName 192.168.1.200
    User root
    Port 22

注意:密码认证性能较低,建议升级为密钥认证。

跳板机配置

使用标准 ProxyJump:

Host bastion
    HostName bastion.example.com
    User jumpuser
    IdentityFile ~/.ssh/jump_key

Host internal-server
    HostName 10.0.1.100
    User appuser
    IdentityFile ~/.ssh/id_rsa
    ProxyJump bastion

AI 只需要知道 internal-server 这个别名,底层自动处理跳转。

守护进程(长连接模式)

工作原理

守护进程在本地维护到远程服务器的 Paramiko 长连接,通过本地 TCP 接受命令请求。 ssh_execute.py 自动检测守护进程:有则复用长连接,无则自动启动。

自动模式(推荐)

ssh_execute.py 首次调用时会自动启动守护进程,无需手动操作。 守护进程空闲 30 分钟后自动退出。

手动管理

# 启动守护进程(通常不需要手动启动)
python "~/.claude/skills/ssh-skill/scripts/ssh_daemon.py" start <别名>

# 查看守护进程状态
python "~/.claude/skills/ssh-skill/scripts/ssh_daemon.py" status <别名>

# 停止守护进程
python "~/.claude/skills/ssh-skill/scripts/ssh_daemon.py" stop <别名>

可选参数:--idle-timeout <秒>(默认 1800,即 30 分钟)

守护进程特性

  • 每台服务器独立守护进程,按别名隔离
  • 多个对话(多个 Claude Code 实例)可共享同一守护进程
  • SSH 连接断开自动重连(最多 3 次)
  • 每 60 秒心跳检测连接状态
  • 空闲超时自动退出,无需手动清理

性能对比

模式单次命令连续 10 条连续 30 条
直连~0.45s~4.5s~13.5s
守护进程~0.12s~1.2s~3.6s

性能优化建议

命令合并

对同一服务器的多个独立查询,优先合并为一次调用:

# 好:一次调用获取多个信息
python "SCRIPTS/ssh_execute.py" DEV-002 "hostname && uptime && df -h && free -m"

# 差:多次调用分别获取
python "SCRIPTS/ssh_execute.py" DEV-002 "hostname"
python "SCRIPTS/ssh_execute.py" DEV-002 "uptime"
python "SCRIPTS/ssh_execute.py" DEV-002 "df -h"
python "SCRIPTS/ssh_execute.py" DEV-002 "free -m"

何时合并,何时分开

  • 合并:多个只读查询、状态检查、信息收集
  • 分开:命令之间有依赖关系、需要根据前一个结果决定下一步、需要独立的错误处理

输出格式

所有脚本输出 JSON 格式:

{
  "success": true,
  "exit_code": 0,
  "stdout": "命令输出",
  "stderr": ""
}

故障排查

连接超时

检查:网络连接、服务器是否在线、防火墙规则、跳板机是否可达。

长命令可加 --timeout 300 延长超时。

守护进程问题

如果守护进程异常,可手动停止后重试:

python "~/.claude/skills/ssh-skill/scripts/ssh_daemon.py" stop <别名>

或使用 --no-daemon 参数跳过守护进程直连:

python "~/.claude/skills/ssh-skill/scripts/ssh_execute.py" <别名> "<命令>" --no-daemon

别名不存在

如果提示别名不存在,可通过配置管理工具查找:

python "~/.claude/skills/ssh-skill/scripts/ssh_config_manager_v3.py" find "<关键词>"

强制规则

  • 所有 SSH 操作必须通过本 skill 的 Python 脚本
  • 禁止直接写 sshscp 命令(首次配置公钥除外)
  • 路径必须使用正斜杠 /,不要使用反斜杠 \
  • 不要用 cd 切换到脚本目录,直接用完整路径调用
  • 使用别名(alias)标识服务器,不再使用 JSON 配置文件路径
  • 对同一服务器的多个只读查询,优先合并为一次调用

依赖

  • Python 3.8+
  • paramiko(SSH 连接和文件传输)

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

34.3%
按下载量换算114

Claude

27.77%
按下载量换算92

Cursor

19.46%
按下载量换算65

Gemini CLI

9.75%
按下载量换算32

安全审计

Gen Agent Trust Hub

未通过

Socket

通过

Snyk

可疑

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills