ssh-licco 2.2.0__tar.gz → 2.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ssh_licco-2.2.0/ssh_licco.egg-info → ssh_licco-2.2.1}/PKG-INFO +9 -8
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/README.md +8 -7
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/pyproject.toml +1 -1
- {ssh_licco-2.2.0 → ssh_licco-2.2.1/ssh_licco.egg-info}/PKG-INFO +9 -8
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/__init__.py +2 -2
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/LICENSE +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/setup.cfg +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_licco.egg-info/SOURCES.txt +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_licco.egg-info/dependency_links.txt +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_licco.egg-info/entry_points.txt +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_licco.egg-info/requires.txt +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_licco.egg-info/top_level.txt +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/__main__.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/approval.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/audit_logger.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/batch_executor.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/cli.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/clients/__init__.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/clients/additional_clients.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/clients/factory.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/clients/interface.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/clients/paramiko_client.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/config_manager.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/connection_config.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/connection_pool.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/exceptions.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/executor.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/handlers/__init__.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/handlers/approval.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/handlers/connect.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/handlers/context.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/handlers/docker.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/handlers/execute.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/handlers/file_transfer.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/handlers/host.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/handlers/key.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/handlers/process.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/handlers/schemas.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/handlers/session.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/handlers/utils.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/key_manager.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/logging_config.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/runtime_guard.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/secret_provider.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/security.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/server.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/service.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/session_manager.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/tunnel.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/ssh_mcp/watchdog.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/tests/test_config_manager.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/tests/test_key_manager.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/tests/test_security.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/tests/test_server.py +0 -0
- {ssh_licco-2.2.0 → ssh_licco-2.2.1}/tests/test_session_manager.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ssh-licco
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.1
|
|
4
4
|
Summary: SSH Model Context Protocol Server - Enable SSH functionality for AI models
|
|
5
5
|
Author-email: SSH LICCO Team <contact@ssh-licco.dev>
|
|
6
6
|
License: MIT
|
|
@@ -256,7 +256,7 @@ mv /path/to/junk /tmp/.trash_$(date +%s)/
|
|
|
256
256
|
|
|
257
257
|
命中硬拦截时会输出 `WARNING` 审计日志(含 category 与命令),便于 SOC 监控。
|
|
258
258
|
|
|
259
|
-
### 🏛️ 生产加固四项(v2.1.0
|
|
259
|
+
### 🏛️ 生产加固四项(v2.1.0 + v2.2.0 演进)
|
|
260
260
|
|
|
261
261
|
SSH 跳板模式部署的生产必做加固,补齐跳板机单点风险:
|
|
262
262
|
|
|
@@ -265,18 +265,20 @@ SSH 跳板模式部署的生产必做加固,补齐跳板机单点风险:
|
|
|
265
265
|
| 1. 运行账号最小权限 | `SSH_RUNTIME_GUARD=true` | 专用普通账号运行,拒绝 root/sudo 启动 |
|
|
266
266
|
| 2. 密钥不落地磁盘 | `SSH_SECRET_PROVIDER_ENABLED=true` | 私钥从 KMS 临时拉取到内存,用完清零,不落盘 |
|
|
267
267
|
| 3. 双层命令拦截 | `SSH_REMOTE_GUARD=true` + 远端 ForceCommand | 跳板机侧禁元字符 + 远端二次白名单校验 |
|
|
268
|
-
| 4.
|
|
268
|
+
| 4. 灾难性命令硬拦截(v2.2.0 新增) | 默认开启,不可关闭 | rm -rf 绝对路径、mkfs、raw-disk dd、fork-bomb、chmod -R 777/000 /、`> /dev/sd*` 等在 MCP 网关层被**无条件**拒绝;任何安全级别、`confirm_dangerous=true` 等均无法绕过 |
|
|
269
|
+
|
|
270
|
+
> **关于 v2.1.0 引入的"高危操作审批"项**:v2.1.0 曾提供 `SSH_APPROVAL_GATE=true` + 3 个审批工具作为第 4 项加固。v2.2.0 起该项被**硬拦截取代**——审批流程依赖 AI 自报命令,存在闭环风险;硬拦截更直接,灾难性命令在 MCP 网关层就被拒绝,运维侧不需要再走"先申请再审批"流程。`SSH_APPROVAL_GATE` 环境变量与 `ssh_mcp/approval.py` 代码仍保留作为参考,但不建议在生产启用。
|
|
269
271
|
|
|
270
272
|
完整方案见 [docs/SECURITY_HARDENING.md](docs/SECURITY_HARDENING.md)。
|
|
271
273
|
|
|
272
274
|
---
|
|
273
275
|
|
|
274
|
-
## 🛠️ 可用工具(v2.1.0
|
|
276
|
+
## 🛠️ 可用工具(v2.2.0 维持 9 个;v2.1.0 曾增加的 3 个审批工具因流程闭环风险已下线)
|
|
275
277
|
|
|
276
278
|
| 工具 | 描述 | 核心能力 |
|
|
277
279
|
|------|------|---------|
|
|
278
280
|
| `ssh_connect` | 连接管理 | 自动读取环境变量/配置,支持密码+密钥认证,可保存配置,登录后自动执行命令 |
|
|
279
|
-
| `ssh_execute` | 命令执行 | 自动连接、智能后台检测、长任务等待、超时控制,支持 nohup/screen/tmux 三种后台模式;v2.1.0 新增 `
|
|
281
|
+
| `ssh_execute` | 命令执行 | 自动连接、智能后台检测、长任务等待、超时控制,支持 nohup/screen/tmux 三种后台模式;v2.1.0 新增 `remote_guard`(双层拦截)参数;v2.2.0 起对灾难性命令(rm -rf 绝对路径、mkfs、raw-disk dd、fork-bomb 等)做**无条件硬拦截** |
|
|
280
282
|
| `ssh_disconnect` | 会话管理 | 断开指定会话 OR 列出所有活跃会话 |
|
|
281
283
|
| `ssh_file_transfer` | 文件传输 | 上传/下载/列表/写入/追加/删除/创建目录/查看元信息(8 种操作);v2.1.3+ delete 操作新增 Windows/Unix 敏感路径拦截与路径遍历防护 |
|
|
282
284
|
| `ssh_host` | 主机管理 | `action=list/add/remove` 增删查主机配置 |
|
|
@@ -284,9 +286,8 @@ SSH 跳板模式部署的生产必做加固,补齐跳板机单点风险:
|
|
|
284
286
|
| `ssh_generate_key` | 密钥生成 | RSA / Ed25519 密钥对 |
|
|
285
287
|
| `ssh_session` | screen/tmux 会话 | 持久化远程会话管理(create/send/capture/list/kill),SSH 断开后进程依然存活 |
|
|
286
288
|
| `ssh_process` | 进程管理 | 启动/停止/查询远程进程,SSH 端口转发(tunnel_open/tunnel_close/tunnel_list) |
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
| `ssh_list_approvals` | 审批记录查询(v2.1.0 新增) | 列出待审批队列或全部历史记录 |
|
|
289
|
+
|
|
290
|
+
> **关于 v2.1.0 引入的 3 个审批工具**(`ssh_request_approval` / `ssh_approve_command` / `ssh_list_approvals`):已从 MCP `list_tools()` 移除。审批流程依赖 AI 自报命令、运维侧背书,存在闭环风险;v2.2.0 的硬拦截更直接——灾难性命令在 MCP 网关层就被拒绝,运维侧不需要再走"先申请再审批"流程。相关代码(`ssh_mcp/approval.py`、`ssh_mcp/handlers/approval.py`)保留作为参考,但不暴露给 MCP。
|
|
290
291
|
|
|
291
292
|
### 📖 详细文档
|
|
292
293
|
|
|
@@ -223,7 +223,7 @@ mv /path/to/junk /tmp/.trash_$(date +%s)/
|
|
|
223
223
|
|
|
224
224
|
命中硬拦截时会输出 `WARNING` 审计日志(含 category 与命令),便于 SOC 监控。
|
|
225
225
|
|
|
226
|
-
### 🏛️ 生产加固四项(v2.1.0
|
|
226
|
+
### 🏛️ 生产加固四项(v2.1.0 + v2.2.0 演进)
|
|
227
227
|
|
|
228
228
|
SSH 跳板模式部署的生产必做加固,补齐跳板机单点风险:
|
|
229
229
|
|
|
@@ -232,18 +232,20 @@ SSH 跳板模式部署的生产必做加固,补齐跳板机单点风险:
|
|
|
232
232
|
| 1. 运行账号最小权限 | `SSH_RUNTIME_GUARD=true` | 专用普通账号运行,拒绝 root/sudo 启动 |
|
|
233
233
|
| 2. 密钥不落地磁盘 | `SSH_SECRET_PROVIDER_ENABLED=true` | 私钥从 KMS 临时拉取到内存,用完清零,不落盘 |
|
|
234
234
|
| 3. 双层命令拦截 | `SSH_REMOTE_GUARD=true` + 远端 ForceCommand | 跳板机侧禁元字符 + 远端二次白名单校验 |
|
|
235
|
-
| 4.
|
|
235
|
+
| 4. 灾难性命令硬拦截(v2.2.0 新增) | 默认开启,不可关闭 | rm -rf 绝对路径、mkfs、raw-disk dd、fork-bomb、chmod -R 777/000 /、`> /dev/sd*` 等在 MCP 网关层被**无条件**拒绝;任何安全级别、`confirm_dangerous=true` 等均无法绕过 |
|
|
236
|
+
|
|
237
|
+
> **关于 v2.1.0 引入的"高危操作审批"项**:v2.1.0 曾提供 `SSH_APPROVAL_GATE=true` + 3 个审批工具作为第 4 项加固。v2.2.0 起该项被**硬拦截取代**——审批流程依赖 AI 自报命令,存在闭环风险;硬拦截更直接,灾难性命令在 MCP 网关层就被拒绝,运维侧不需要再走"先申请再审批"流程。`SSH_APPROVAL_GATE` 环境变量与 `ssh_mcp/approval.py` 代码仍保留作为参考,但不建议在生产启用。
|
|
236
238
|
|
|
237
239
|
完整方案见 [docs/SECURITY_HARDENING.md](docs/SECURITY_HARDENING.md)。
|
|
238
240
|
|
|
239
241
|
---
|
|
240
242
|
|
|
241
|
-
## 🛠️ 可用工具(v2.1.0
|
|
243
|
+
## 🛠️ 可用工具(v2.2.0 维持 9 个;v2.1.0 曾增加的 3 个审批工具因流程闭环风险已下线)
|
|
242
244
|
|
|
243
245
|
| 工具 | 描述 | 核心能力 |
|
|
244
246
|
|------|------|---------|
|
|
245
247
|
| `ssh_connect` | 连接管理 | 自动读取环境变量/配置,支持密码+密钥认证,可保存配置,登录后自动执行命令 |
|
|
246
|
-
| `ssh_execute` | 命令执行 | 自动连接、智能后台检测、长任务等待、超时控制,支持 nohup/screen/tmux 三种后台模式;v2.1.0 新增 `
|
|
248
|
+
| `ssh_execute` | 命令执行 | 自动连接、智能后台检测、长任务等待、超时控制,支持 nohup/screen/tmux 三种后台模式;v2.1.0 新增 `remote_guard`(双层拦截)参数;v2.2.0 起对灾难性命令(rm -rf 绝对路径、mkfs、raw-disk dd、fork-bomb 等)做**无条件硬拦截** |
|
|
247
249
|
| `ssh_disconnect` | 会话管理 | 断开指定会话 OR 列出所有活跃会话 |
|
|
248
250
|
| `ssh_file_transfer` | 文件传输 | 上传/下载/列表/写入/追加/删除/创建目录/查看元信息(8 种操作);v2.1.3+ delete 操作新增 Windows/Unix 敏感路径拦截与路径遍历防护 |
|
|
249
251
|
| `ssh_host` | 主机管理 | `action=list/add/remove` 增删查主机配置 |
|
|
@@ -251,9 +253,8 @@ SSH 跳板模式部署的生产必做加固,补齐跳板机单点风险:
|
|
|
251
253
|
| `ssh_generate_key` | 密钥生成 | RSA / Ed25519 密钥对 |
|
|
252
254
|
| `ssh_session` | screen/tmux 会话 | 持久化远程会话管理(create/send/capture/list/kill),SSH 断开后进程依然存活 |
|
|
253
255
|
| `ssh_process` | 进程管理 | 启动/停止/查询远程进程,SSH 端口转发(tunnel_open/tunnel_close/tunnel_list) |
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
| `ssh_list_approvals` | 审批记录查询(v2.1.0 新增) | 列出待审批队列或全部历史记录 |
|
|
256
|
+
|
|
257
|
+
> **关于 v2.1.0 引入的 3 个审批工具**(`ssh_request_approval` / `ssh_approve_command` / `ssh_list_approvals`):已从 MCP `list_tools()` 移除。审批流程依赖 AI 自报命令、运维侧背书,存在闭环风险;v2.2.0 的硬拦截更直接——灾难性命令在 MCP 网关层就被拒绝,运维侧不需要再走"先申请再审批"流程。相关代码(`ssh_mcp/approval.py`、`ssh_mcp/handlers/approval.py`)保留作为参考,但不暴露给 MCP。
|
|
257
258
|
|
|
258
259
|
### 📖 详细文档
|
|
259
260
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ssh-licco
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.1
|
|
4
4
|
Summary: SSH Model Context Protocol Server - Enable SSH functionality for AI models
|
|
5
5
|
Author-email: SSH LICCO Team <contact@ssh-licco.dev>
|
|
6
6
|
License: MIT
|
|
@@ -256,7 +256,7 @@ mv /path/to/junk /tmp/.trash_$(date +%s)/
|
|
|
256
256
|
|
|
257
257
|
命中硬拦截时会输出 `WARNING` 审计日志(含 category 与命令),便于 SOC 监控。
|
|
258
258
|
|
|
259
|
-
### 🏛️ 生产加固四项(v2.1.0
|
|
259
|
+
### 🏛️ 生产加固四项(v2.1.0 + v2.2.0 演进)
|
|
260
260
|
|
|
261
261
|
SSH 跳板模式部署的生产必做加固,补齐跳板机单点风险:
|
|
262
262
|
|
|
@@ -265,18 +265,20 @@ SSH 跳板模式部署的生产必做加固,补齐跳板机单点风险:
|
|
|
265
265
|
| 1. 运行账号最小权限 | `SSH_RUNTIME_GUARD=true` | 专用普通账号运行,拒绝 root/sudo 启动 |
|
|
266
266
|
| 2. 密钥不落地磁盘 | `SSH_SECRET_PROVIDER_ENABLED=true` | 私钥从 KMS 临时拉取到内存,用完清零,不落盘 |
|
|
267
267
|
| 3. 双层命令拦截 | `SSH_REMOTE_GUARD=true` + 远端 ForceCommand | 跳板机侧禁元字符 + 远端二次白名单校验 |
|
|
268
|
-
| 4.
|
|
268
|
+
| 4. 灾难性命令硬拦截(v2.2.0 新增) | 默认开启,不可关闭 | rm -rf 绝对路径、mkfs、raw-disk dd、fork-bomb、chmod -R 777/000 /、`> /dev/sd*` 等在 MCP 网关层被**无条件**拒绝;任何安全级别、`confirm_dangerous=true` 等均无法绕过 |
|
|
269
|
+
|
|
270
|
+
> **关于 v2.1.0 引入的"高危操作审批"项**:v2.1.0 曾提供 `SSH_APPROVAL_GATE=true` + 3 个审批工具作为第 4 项加固。v2.2.0 起该项被**硬拦截取代**——审批流程依赖 AI 自报命令,存在闭环风险;硬拦截更直接,灾难性命令在 MCP 网关层就被拒绝,运维侧不需要再走"先申请再审批"流程。`SSH_APPROVAL_GATE` 环境变量与 `ssh_mcp/approval.py` 代码仍保留作为参考,但不建议在生产启用。
|
|
269
271
|
|
|
270
272
|
完整方案见 [docs/SECURITY_HARDENING.md](docs/SECURITY_HARDENING.md)。
|
|
271
273
|
|
|
272
274
|
---
|
|
273
275
|
|
|
274
|
-
## 🛠️ 可用工具(v2.1.0
|
|
276
|
+
## 🛠️ 可用工具(v2.2.0 维持 9 个;v2.1.0 曾增加的 3 个审批工具因流程闭环风险已下线)
|
|
275
277
|
|
|
276
278
|
| 工具 | 描述 | 核心能力 |
|
|
277
279
|
|------|------|---------|
|
|
278
280
|
| `ssh_connect` | 连接管理 | 自动读取环境变量/配置,支持密码+密钥认证,可保存配置,登录后自动执行命令 |
|
|
279
|
-
| `ssh_execute` | 命令执行 | 自动连接、智能后台检测、长任务等待、超时控制,支持 nohup/screen/tmux 三种后台模式;v2.1.0 新增 `
|
|
281
|
+
| `ssh_execute` | 命令执行 | 自动连接、智能后台检测、长任务等待、超时控制,支持 nohup/screen/tmux 三种后台模式;v2.1.0 新增 `remote_guard`(双层拦截)参数;v2.2.0 起对灾难性命令(rm -rf 绝对路径、mkfs、raw-disk dd、fork-bomb 等)做**无条件硬拦截** |
|
|
280
282
|
| `ssh_disconnect` | 会话管理 | 断开指定会话 OR 列出所有活跃会话 |
|
|
281
283
|
| `ssh_file_transfer` | 文件传输 | 上传/下载/列表/写入/追加/删除/创建目录/查看元信息(8 种操作);v2.1.3+ delete 操作新增 Windows/Unix 敏感路径拦截与路径遍历防护 |
|
|
282
284
|
| `ssh_host` | 主机管理 | `action=list/add/remove` 增删查主机配置 |
|
|
@@ -284,9 +286,8 @@ SSH 跳板模式部署的生产必做加固,补齐跳板机单点风险:
|
|
|
284
286
|
| `ssh_generate_key` | 密钥生成 | RSA / Ed25519 密钥对 |
|
|
285
287
|
| `ssh_session` | screen/tmux 会话 | 持久化远程会话管理(create/send/capture/list/kill),SSH 断开后进程依然存活 |
|
|
286
288
|
| `ssh_process` | 进程管理 | 启动/停止/查询远程进程,SSH 端口转发(tunnel_open/tunnel_close/tunnel_list) |
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
| `ssh_list_approvals` | 审批记录查询(v2.1.0 新增) | 列出待审批队列或全部历史记录 |
|
|
289
|
+
|
|
290
|
+
> **关于 v2.1.0 引入的 3 个审批工具**(`ssh_request_approval` / `ssh_approve_command` / `ssh_list_approvals`):已从 MCP `list_tools()` 移除。审批流程依赖 AI 自报命令、运维侧背书,存在闭环风险;v2.2.0 的硬拦截更直接——灾难性命令在 MCP 网关层就被拒绝,运维侧不需要再走"先申请再审批"流程。相关代码(`ssh_mcp/approval.py`、`ssh_mcp/handlers/approval.py`)保留作为参考,但不暴露给 MCP。
|
|
290
291
|
|
|
291
292
|
### 📖 详细文档
|
|
292
293
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|