本技能适用于用户请求运行 ssh 命令、在服务器上执行、ssh 会话、上传/下载文件、ssh 隧道、检查服务器状态、监控服务器、部署文件、备份服务器,或需要远程服务器管理的场景。强调会话复用、工作目录组织和内容持久化,以实现可持续运维。
MCP SSH 管理器 Skill. 原始 MCP 服务器 : mcp- ssh- manager by @bibility. 此技能提供文档,工作流程,以及使是一项面向实际任务的技能,主要用于Manage 远程 SSH.。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
原始 MCP 服务端: @bvisible 开发的 mcp-ssh-manager
本技能提供关于使用 MCP ssh-manager 服务端的文档、工作流及最佳实践。
使用 MCP ssh-manager 工具管理远程 SSH 服务器。强调会话复用、工作目录(workdir)组织与内容持久化,以支持可持续运维操作。
| 任务 | 工具 | 示例 |
|---|---|---|
| 列出服务器 | ssh_list_servers |
ssh_list_servers |
| 执行命令 | ssh_execute |
ssh_execute server="rock5t" command="df -h" |
| 以 sudo 执行命令 | ssh_execute_sudo |
ssh_execute_sudo server="rock5t" command="apt update" |
| 检查连接状态 | ssh_connection_status |
ssh_connection_status action="status" |
| 任务 | 工具 | 示例 |
|---|---|---|
| 启动会话 | ssh_session_start |
ssh_session_start server="rock5t" name="deploy" |
| 发送命令 | ssh_session_send |
ssh_session_send session="xxx" command="cd /var" |
| 列出会话 | ssh_session_list |
ssh_session_list |
| 关闭会话 | ssh_session_close |
ssh_session_close session="xxx" |
| 任务 | 工具 | 示例 |
|---|---|---|
| 上传文件 | ssh_upload |
ssh_upload server="rock5t" localPath="." remotePath="/tmp" |
| 下载文件 | ssh_download |
ssh_download server="rock5t" remotePath="/var/log/syslog" localPath="." |
| 同步文件 | ssh_sync |
ssh_sync server="rock5t" source="local:./dist" destination="remote:/var/www" |
| 任务 | 工具 | 示例 |
|---|---|---|
| 实时追踪日志(tail) | ssh_tail |
ssh_tail server="rock5t" file="/var/log/syslog" lines=20 |
| 健康检查 | ssh_health_check |
ssh_health_check server="rock5t" |
| 资源监控 | ssh_monitor |
ssh_monitor server="rock5t" type="overview" |
| 服务状态 | ssh_service_status |
ssh_service_status server="rock5t" services="nginx,docker" |
| 任务 | 工具 | 示例 |
|---|---|---|
| 创建隧道 | ssh_tunnel_create |
ssh_tunnel_create server="rock5t" type="local" localPort=8080 remoteHost="localhost" remotePort=80 |
| 列出隧道 | ssh_tunnel_list |
ssh_tunnel_list |
| 关闭隧道 | ssh_tunnel_close |
ssh_tunnel_close tunnelId="xxx" |
| 任务 | 工具 | 示例 |
|---|---|---|
| 创建备份 | ssh_backup_create |
ssh_backup_create server="rock5t" type="files" name="data" |
| 列出备份 | ssh_backup_list |
ssh_backup_list server="rock5t" |
| 恢复备份 | ssh_backup_restore |
ssh_backup_restore server="rock5t" backupId="xxx" |
| 定时备份 | ssh_backup_schedule |
ssh_backup_schedule server="rock5t" schedule="0 2 * * *" type="files" name="daily" |
# 简单命令 —— 无需建立会话 ssh_execute server="rock5t" command="df -h"
# 首先检查现有会话 ssh_session_list # 启动一个持久化会话 ssh_session_start server="rock5t" name="deploy" # 根据上一步响应获取会话 ID ssh_session_send session="xxx" command="cd /home/imax/project" ssh_session_send session="xxx" command="git pull origin main" ssh_session_send session="xxx" command="npm install" ssh_session_send session="xxx" command="npm run build" ssh_session_send session="xxx" command="pm2 restart all" # 完成后关闭会话 ssh_session_close session="xxx"
# 检查整体健康状况 ssh_health_check server="rock5t" # 监控特定资源指标 ssh_monitor server="rock5t" type="cpu" interval=5 duration=30 # 检查指定服务状态 ssh_service_status server="rock5t" services="nginx,docker,postgres"
# 上传部署包 ssh_upload server="rock5t" localPath="./dist/app.tar.gz" remotePath="/tmp/app.tar.gz" # 解压并重启服务 ssh_execute server="rock5t" command="cd /tmp && tar -xzf app.tar.gz && cp -r app/* /var/www/ && pm2 restart app"
# 实时追踪日志 ssh_tail server="rock5t" file="/var/log/nginx/access.log" lines=50 follow=true # 结合 grep 过滤关键词 ssh_tail server="rock5t" file="/var/log/syslog" grep="error" lines=100
# 本地端口转发(在本地访问远程服务) ssh_tunnel_create server="rock5t" type="local" localPort=5432 remoteHost="localhost" remotePort=5432 # 此时可连接本地 5432 端口访问远程数据库
将 SSH 操作结果存储于 ~/.ssh-workdir/{hostname}/{YYYY-MM-DD}-{topic}/ 路径下,便于复用与历史对比。
~/.ssh-workdir/
└── {hostname}/
└── {YYYY-MM-DD}-{topic}/
├── commands.md # 所有已执行命令记录
├── output/ # 命令输出内容
│ ├── df-h.txt
│ ├── cpu.txt
│ └── memory.txt
├── status.json # 主机状态快照
└── summary.md # 发现项与备注说明
# 创建新 workdir
mkdir -p ~/.ssh-workdir/{hostname}/{YYYY-MM-DD}-{topic}/output
# 创建命令日志文件
touch ~/.ssh-workdir/{hostname}/{YYYY-MM-DD}-{topic}/commands.md
# 将命令追加至日志
echo "## $(date)" >> ~/.ssh-workdir/{hostname}/{YYYY-MM-DD}-{topic}/commands.md
echo 'df -h' >> ~/.ssh-workdir/{hostname}/{YYYY-MM-DD}-{topic}/commands.md
# 执行命令并保存输出
ssh_execute server="{hostname}" command="df -h" > ~/.ssh-workdir/{hostname}/{YYYY-MM-DD}-{topic}/output/df-h.txt
# 记录发现项
echo '## System Check Findings' >> ~/.ssh-workdir/{hostname}/{YYYY-MM-DD}-{topic}/summary.md
echo '- Disk usage: 75% on /dev/sda1' >> ~/.ssh-workdir/{hostname}/{YYYY-MM-DD}-{topic}/summary.md
echo '- Memory: 4GB/16GB used' >> ~/.ssh-workdir/{hostname}/{YYYY-MM-DD}-{topic}/summary.md
# 检查是否存在近期 workdir
ls ~/.ssh-workdir/{hostname}/
# 查看前一次摘要
cat ~/.ssh-workdir/{hostname}/{previous-date}-{topic}/summary.md
# 对比输出差异
diff ~/.ssh-workdir/{hostname}/{yesterday}-{topic}/output/df-h.txt
~/.ssh-workdir/{hostname}/{today}-{topic}/output/df-h.txt
建议在以下场景中使用会话:
cd、环境变量设置等)不建议在以下场景中使用会话:
df -h、pwd)# 1. 首先检查已有会话
ssh_session_list
# 2. 若存在且仍活跃,则优先复用已有会话
ssh_session_send session="existing-id" command="..."
# 3. 仅当必要时才新建会话
ssh_session_start server="{hostname}" name="{task-name}"
# 4. 完成后务必关闭会话
ssh_session_close session="{session-id}"
ClientAliveInterval 参数延长保活时间检查现有会话
ssh_session_list
检查近期 workdir
ls ~/.ssh-workdir/{hostname}/
若开启新任务,请创建工作目录
mkdir -p ~/.ssh-workdir/{hostname}/{YYYY-MM-DD}-{topic}/output
根据任务类型选用合适工具
ssh_executessh_session_start → ssh_session_send → ssh_session_closessh_upload/ssh_download/ssh_syncssh_monitor、ssh_tail、ssh_health_check将命令记录至 workdir
echo "command" >> ~/.ssh-workdir/{hostname}/{YYYY-MM-DD}-{topic}/commands.md
保存关键输出结果
ssh_execute server="{hostname}" command="df -h" > ~/.ssh-workdir/{hostname}/{YYYY-MM-DD}-{topic}/output/df-h.txt
关闭会话
ssh_session_close session="{session-id}"
撰写摘要
echo '## Findings' >> ~/.ssh-workdir/{hostname}/{YYYY-MM-DD}-{topic}/summary.md
清理资源
ssh_tunnel_closessh_session_listssh_session_list 检查并复用已有会话summary.md 可快速回顾过往工作内容ssh_connection_status action="status" 检查连接健康度ClientAliveIntervalreferences/sessions.md —— 会话管理深度指南references/workspace.md —— Workdir 目录结构与使用说明references/comparison.md —— 历史数据对比方法examples/system-check.md —— 完整系统健康检查工作流examples/deployment.md —— 多步骤部署示例examples/troubleshooting.md —— 故障诊断工作流scripts/create-workdir.sh —— 自动创建 workdir 目录结构scripts/log-command.sh —— 快速将命令写入 workdir 日志scripts/save-status.sh —— 捕获并保存主机状态快照相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习