SSH Model Context Protocol Server - Connect to SSH servers and execute commands via AI assistants.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag — we're steadily working through the catalog.
💡 Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
让 AI 帮你操作服务器! 通过自然语言对话,AI 可以帮你执行命令、管理文件、查看日志、部署应用等。
ssh_file_transfer delete 自动识别 Windows / Unix 路径风格并拦截敏感路径与路径遍历SSH-LICCO 基于标准 SSH/SFTP 协议,可连接以下目标主机:
| 操作系统 | 要求 | 备注 |
|---|---|---|
| Linux | OpenSSH 7.0+ | 推荐,完整支持所有功能 |
| Windows Server | OpenSSH for Windows / PowerShell Remoting over SSH | v2.1.3+ 支持 Windows 路径风格与安全校验 |
| macOS | 系统内置 OpenSSH | 完整支持 |
提示:连接 Windows 服务器时,请使用 Windows 风格路径(如
C:\temp\file.txt),系统会自动识别并进行路径安全校验。
Python 版本要求: Python 3.10+
打开设置 → MCP → 添加新服务器:
环境变量说明:
SSH_HOST: SSH 服务器地址SSH_USER: 用户名SSH_PASSWORD: 密码SSH_PORT: 端口(默认 22)SSH_TIMEOUT: 连接超时(秒)SSH_KEEPALIVE_INTERVAL: 保活间隔(秒)SSH_SESSION_TIMEOUT: 会话超时(秒)SSH_CLIENT_TYPE: SSH 客户端类型(可选,默认 common)
common - paramiko(稳定可靠,推荐)⭐performance - asyncssh(高性能,适合高并发)🚀development - fabric(简化 API,适合快速开发)👨💻重要:从 v0.2.1 开始,ssh-licco 提供多级安全策略,可根据使用场景灵活配置。
| 级别 | 名称 | 适用场景 | 安全评分 |
|---|---|---|---|
| STRICT | 严格模式 | 生产环境、公共服务器 | 最高 ⭐⭐⭐ |
| BALANCED | 平衡模式 | 开发环境、个人服务器(默认) | 高 ⭐⭐ |
| RELAXED | 宽松模式 | 测试环境、完全信任的服务器 | 中等 ⭐ |
Windows PowerShell:
Linux/Mac:
为防止任何误操作或越权调用直接打到远程 shell,ssh-licco 在所有安全级别下都无条件拦截以下灾难性命令模式,无法通过 confirm_dangerous=true、confirmation_layer=N、调整 SSH_SECURITY_LEVEL 等任何方式绕过:
rm -rf 作用于绝对路径(含 /、/*、/path、/path/*,-fr 变体同效)mkfs.* 任意文件系统格式化dd if=/dev/(zero|random|urandom) of=/dev/(sd|nvme) 覆写裸盘:(){ :|:& };: 及空白变体)chmod -R 777 / / chmod -R 000 / 根目录递归改权限> /dev/(sd|nvme) / >> /dev/(sd|nvme) 裸设备重定向如确需执行上述操作,请直接通过 SSH 登录服务器(绕过 MCP 网关)进行。安全且可逆的替代方案:
命中硬拦截时会输出 WARNING 审计日志(含 category 与命令),便于 SOC 监控。
| 工具 | 描述 | 核心能力 |
|---|---|---|
ssh_connect | 连接管理 | 自动读取环境变量/配置,支持密码+密钥认证,可保存配置,登录后自动执行命令 |
ssh_execute | 命令执行 | 自动连接、智能后台检测、长任务等待、超时控制,支持 nohup/screen/tmux 三种后台模式;v2.2.0 起对灾难性命令(rm -rf 绝对路径、mkfs、raw-disk dd、fork-bomb 等)做无条件硬拦截 |
ssh_disconnect | 会话管理 | 断开指定会话 OR 列出所有活跃会话 |
ssh_file_transfer | 文件传输 | 上传/下载/列表/写入/追加/删除/创建目录/查看元信息(8 种操作);v2.1.3+ delete 操作新增 Windows/Unix 敏感路径拦截与路径遍历防护 |
ssh_host | 主机管理 | action=list/add/remove 增删查主机配置 |
ssh_docker | Docker 管理 | action=ps/images/build/logs 全生命周期管理 |
ssh_generate_key | 密钥生成 | RSA / Ed25519 密钥对 |
ssh_session | screen/tmux 会话 | 持久化远程会话管理(create/send/capture/list/kill),SSH 断开后进程依然存活 |
ssh_process | 进程管理 | 启动/停止/查询远程进程,SSH 端口转发(tunnel_open/tunnel_close/tunnel_list) |
关于 v2.1.0 引入的 3 个审批工具(
ssh_request_approval/ssh_approve_command/ssh_list_approvals):已从 MCPlist_tools()移除,代码已在 v2.2.0 删除(ssh_mcp/approval.py、ssh_mcp/handlers/approval.py)。审批流程依赖 AI 自报命令、运维侧背书,存在闭环风险;v2.2.0 的硬拦截更直接——灾难性命令在 MCP 网关层就被拒绝,运维侧不需要再走"先申请再审批"流程。
下表所有变量均被代码读取。注意:
SSH_RATE_LIMIT是 bool 总开关(true/false),SSH_RATE_LIMIT_MAX才是次数上限,两者分开配置- 主机密钥检查(strict_host_key_checking)不通过 env 配置,请用
ssh_connect工具参数或hosts.json
| 分类 | 变量 | 默认 | 说明 |
|---|---|---|---|
| 安全 | SSH_SECURITY_LEVEL | balanced | 安全级别:strict / balanced / relaxed |
SSH_BASE_DIR | /home | 路径校验基目录 | |
SSH_EXTRA_ALLOWED_COMMANDS | (空) | 额外允许的命令(逗号分隔) | |
SSH_ALLOWED_COMMANDS_FILE | (空) | 命令白名单 JSON 文件路径 | |
SSH_AUDIT_LOG_PATH | (空) | 审计日志文件路径 | |
| 限流 | SSH_RATE_LIMIT | true | 限流总开关(bool) |
SSH_RATE_LIMIT_MAX | 30 | 限流次数上限 | |
SSH_RATE_LIMIT_WINDOW | 60 | 限流窗口(秒) | |
| 硬拦截 | (无 env) | — | 灾难性命令硬拦截,零配置零绕过 |
| 连接默认 | SSH_HOST / SSH_PORT / SSH_USER / SSH_PASSWORD | 127.0.0.1 / 22 / root / (空) | 单 host 模式默认连接参数 |
SSH_TIMEOUT | 60 | 连接超时(秒) | |
SSH_KEEPALIVE_INTERVAL | 30 | keepalive 间隔(秒) | |
SSH_SESSION_TIMEOUT | 7200 | 会话超时(秒) | |
SSH_CLIENT_TYPE | paramiko | SSH 客户端实现:paramiko / asyncssh | |
SSH_FORCE_ENV_CONFIG | false | 强制 env 配置覆盖 hosts.json | |
SSH_SUDO_PASSWORD | (空) | sudo 密码,配合 use_sudo=true 走 sudo -S |
以下依赖版本冲突已在测试环境中验证,不影响 ssh-licco 的正常使用:
影响范围:
解决方案:
影响范围:
解决方案:
测试通过的配置:
测试场景:
ssh-licco 的核心依赖是:
mcp - MCP 协议实现asyncssh - SSH 客户端paramiko - SSH 客户端(稳定模式)pydantic - 数据验证而 starlette 和 cryptography 是通过 mcp 间接引入的。ssh-licco 本身不直接使用这些库的 API,因此版本冲突不会影响 ssh-licco 的功能。
错误: Connection refused
解决:
systemctl status sshdufw status错误: Authentication failed
解决:
/var/log/auth.log错误: 命令 'xxx' 不在允许列表中
解决:
| 文档 | 描述 | 位置 |
|---|---|---|
| 📖 配置指南 | 完整配置选项和场景 | MCP_CONFIG_GUIDE.md |
| 🔐 安全指南 | 安全配置详解 | SECURITY_CONFIG_GUIDE.md |
| 📊 API 参考 | 完整 API 文档 | docs/API_REFERENCE.md |
| 🎓 Skills | 开发、运维、安装指南 | docs/skills/ |
| 📦 发布指南 | 版本发布流程 | docs/skills/RELEASE_SKILL.md |
| 指标 | 状态 |
|---|---|
| 测试用例 | 424 passed, 0 skipped |
| 覆盖率 | 16 个源模块全覆盖 |
| 测试框架 | pytest + pytest-asyncio |
| 源模块 | 测试文件 | 用例数 |
|---|---|---|
exceptions.py | test_exceptions.py | 7 |
connection_config.py | test_connection_config.py | 8 |
security.py | test_security.py | 24 |
logging_config.py | test_logging_config.py | 8 |
audit_logger.py | test_audit_logger.py | 12 |
executor.py | test_executor.py | 8 |
watchdog.py | test_watchdog.py | 18 |
key_manager.py | test_key_manager.py | 6 |
config_manager.py | test_config_manager.py | 10 |
clients/interface.py | test_factory.py | 10 |
clients/paramiko_client.py | test_paramiko_client.py | 18 |
clients/factory.py | test_factory.py | 10 |
session_manager.py | test_session_manager.py | 18 |
connection_pool.py | test_connection_pool.py | 10 |
batch_executor.py | test_batch_executor.py | 10 |
server.py | test_server.py | 30+ |
service.py | test_service.py | 14 |
项目提供 sync_version.py 作为唯一版本发布入口,一条命令完成所有版本源同步 + 文档更新 + 一致性自检 + git commit/tag/push,杜绝漏改 VERSION / package.json / SKILL.md 等文件。
默认行为:改版本源 → 同步文档版本 → 一致性自检 → commit → push → 打 tag → push tag。
| 文件 | 字段 | 说明 |
|---|---|---|
ssh_mcp/__init__.py | __version__ | 唯一真源,其他文件都与其对齐 |
pyproject.toml | version | Python 包构建版本 |
VERSION | 纯文本 | .github/workflows/pypi.yml 实际读取的版本 |
package.json | version | npm 包版本 |
package-lock.json | version × 2 | npm lock 根版本 + packages[""].version |
.trae/skills/*/SKILL.md | Current Version | 文档中的版本标注 |
docs/skills/*/SKILL.md | Current Version | 文档中的版本标注 |
.github/workflows/pypi.yml 在构建前会执行 python sync_version.py --check,任何版本源不一致都会直接中断发布流程,防止打错版本号。
完整发布流程(含 PyPI 上传、MCP Registry 发布)见 docs/skills/RELEASE_SKILL.md。
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/ssh-licco)<a href="https://allmcps.com/mcp/ssh-licco"><img src="https://allmcps.com/api/badge/ssh-licco?style=directory" alt="Ssh Licco on AllMCPs" /></a>