ssh-licco 2.3.0__tar.gz → 2.3.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.
Files changed (53) hide show
  1. {ssh_licco-2.3.0/ssh_licco.egg-info → ssh_licco-2.3.1}/PKG-INFO +39 -1
  2. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/README.md +38 -0
  3. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/pyproject.toml +1 -1
  4. {ssh_licco-2.3.0 → ssh_licco-2.3.1/ssh_licco.egg-info}/PKG-INFO +39 -1
  5. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/__init__.py +2 -2
  6. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/LICENSE +0 -0
  7. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/setup.cfg +0 -0
  8. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_licco.egg-info/SOURCES.txt +0 -0
  9. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_licco.egg-info/dependency_links.txt +0 -0
  10. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_licco.egg-info/entry_points.txt +0 -0
  11. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_licco.egg-info/requires.txt +0 -0
  12. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_licco.egg-info/top_level.txt +0 -0
  13. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/__main__.py +0 -0
  14. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/audit_logger.py +0 -0
  15. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/batch_executor.py +0 -0
  16. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/cli.py +0 -0
  17. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/clients/__init__.py +0 -0
  18. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/clients/additional_clients.py +0 -0
  19. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/clients/factory.py +0 -0
  20. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/clients/interface.py +0 -0
  21. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/clients/paramiko_client.py +0 -0
  22. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/config_manager.py +0 -0
  23. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/connection_config.py +0 -0
  24. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/connection_pool.py +0 -0
  25. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/exceptions.py +0 -0
  26. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/executor.py +0 -0
  27. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/handlers/__init__.py +0 -0
  28. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/handlers/connect.py +0 -0
  29. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/handlers/context.py +0 -0
  30. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/handlers/docker.py +0 -0
  31. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/handlers/execute.py +0 -0
  32. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/handlers/file_transfer.py +0 -0
  33. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/handlers/host.py +0 -0
  34. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/handlers/key.py +0 -0
  35. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/handlers/process.py +0 -0
  36. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/handlers/schemas.py +0 -0
  37. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/handlers/session.py +0 -0
  38. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/handlers/utils.py +0 -0
  39. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/key_manager.py +0 -0
  40. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/logging_config.py +0 -0
  41. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/runtime_guard.py +0 -0
  42. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/secret_provider.py +0 -0
  43. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/security.py +0 -0
  44. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/server.py +0 -0
  45. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/service.py +0 -0
  46. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/session_manager.py +0 -0
  47. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/tunnel.py +0 -0
  48. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/ssh_mcp/watchdog.py +0 -0
  49. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/tests/test_config_manager.py +0 -0
  50. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/tests/test_key_manager.py +0 -0
  51. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/tests/test_security.py +0 -0
  52. {ssh_licco-2.3.0 → ssh_licco-2.3.1}/tests/test_server.py +0 -0
  53. {ssh_licco-2.3.0 → ssh_licco-2.3.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.3.0
3
+ Version: 2.3.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
@@ -453,6 +453,44 @@ localhost:5432 - accepting connections
453
453
 
454
454
  - **[MCP_CONFIG_GUIDE.md](MCP_CONFIG_GUIDE.md)** - 包含所有配置选项的详细说明
455
455
 
456
+ ### 🌐 完整环境变量速查(v2.3.0)
457
+
458
+ > 下表所有变量均被代码读取。**注意**:
459
+ > - `SSH_RATE_LIMIT` 是 **bool** 总开关(true/false),`SSH_RATE_LIMIT_MAX` 才是次数上限,两者分开配置
460
+ > - 主机密钥检查(strict_host_key_checking)**不通过 env 配置**,请用 `ssh_connect` 工具参数或 `hosts.json`
461
+ > - 详细分组说明见 [docs/SECURITY_HARDENING.md#环境变量速查](docs/SECURITY_HARDENING.md#环境变量速查v230-完整列表)
462
+
463
+ | 分类 | 变量 | 默认 | 说明 |
464
+ |------|------|------|------|
465
+ | **安全** | `SSH_SECURITY_LEVEL` | `balanced` | 安全级别:`strict` / `balanced` / `relaxed` |
466
+ | | `SSH_BASE_DIR` | `/home` | 路径校验基目录 |
467
+ | | `SSH_EXTRA_ALLOWED_COMMANDS` | (空) | 额外允许的命令(逗号分隔) |
468
+ | | `SSH_ALLOWED_COMMANDS_FILE` | (空) | 命令白名单 JSON 文件路径 |
469
+ | | `SSH_AUDIT_LOG_PATH` | (空) | 审计日志文件路径 |
470
+ | **限流** | `SSH_RATE_LIMIT` | `true` | 限流总开关(bool) |
471
+ | | `SSH_RATE_LIMIT_MAX` | `30` | 限流次数上限 |
472
+ | | `SSH_RATE_LIMIT_WINDOW` | `60` | 限流窗口(秒) |
473
+ | **加固点 1** | `SSH_RUNTIME_GUARD` | `false` | runtime guard 总开关 |
474
+ | | `SSH_RUNTIME_ALLOW_ROOT` | `false` | 是否允许 root 启动 |
475
+ | | `SSH_RUNTIME_ALLOWED_USERS` | (空) | 允许启动的账号白名单 |
476
+ | | `SSH_RUNTIME_BLOCK_SUDO` | `true` | 是否拦截 sudo 上下文 |
477
+ | **加固点 2** | `SSH_SECRET_PROVIDER_ENABLED` | `false` | secret provider 总开关 |
478
+ | | `SSH_SECRET_PROVIDER` | `env` | 凭证 provider:`env` / `command` / `http` |
479
+ | | `SSH_SECRET_ENV_KEY_<NAME>` | — | env provider:私钥环境变量 |
480
+ | | `SSH_SECRET_COMMAND_<NAME>` | — | command provider:拉取私钥的命令 |
481
+ | | `SSH_SECRET_HTTP_URL_<NAME>` | — | http provider:拉取私钥的 URL |
482
+ | | `SSH_SECRET_HTTP_TOKEN` | — | http provider:Bearer token |
483
+ | | `SSH_SECRET_HTTP_TIMEOUT` | `15` | http provider:HTTP 超时(秒) |
484
+ | **加固点 3** | `SSH_REMOTE_GUARD` | `false` | 远端元字符拦截总开关 |
485
+ | **加固点 4** | *(无 env)* | — | 灾难性命令硬拦截,零配置零绕过 |
486
+ | **连接默认** | `SSH_HOST` / `SSH_PORT` / `SSH_USER` / `SSH_PASSWORD` | `127.0.0.1` / `22` / `root` / (空) | 单 host 模式默认连接参数 |
487
+ | | `SSH_TIMEOUT` | `60` | 连接超时(秒) |
488
+ | | `SSH_KEEPALIVE_INTERVAL` | `30` | keepalive 间隔(秒) |
489
+ | | `SSH_SESSION_TIMEOUT` | `7200` | 会话超时(秒) |
490
+ | | `SSH_CLIENT_TYPE` | `paramiko` | SSH 客户端实现:`paramiko` / `asyncssh` |
491
+ | | `SSH_FORCE_ENV_CONFIG` | `false` | 强制 env 配置覆盖 hosts.json |
492
+ | | `SSH_SUDO_PASSWORD` | (空) | sudo 密码,配合 `use_sudo=true` 走 `sudo -S` |
493
+
456
494
  ---
457
495
 
458
496
  ## ⚠️ 依赖版本兼容性
@@ -420,6 +420,44 @@ localhost:5432 - accepting connections
420
420
 
421
421
  - **[MCP_CONFIG_GUIDE.md](MCP_CONFIG_GUIDE.md)** - 包含所有配置选项的详细说明
422
422
 
423
+ ### 🌐 完整环境变量速查(v2.3.0)
424
+
425
+ > 下表所有变量均被代码读取。**注意**:
426
+ > - `SSH_RATE_LIMIT` 是 **bool** 总开关(true/false),`SSH_RATE_LIMIT_MAX` 才是次数上限,两者分开配置
427
+ > - 主机密钥检查(strict_host_key_checking)**不通过 env 配置**,请用 `ssh_connect` 工具参数或 `hosts.json`
428
+ > - 详细分组说明见 [docs/SECURITY_HARDENING.md#环境变量速查](docs/SECURITY_HARDENING.md#环境变量速查v230-完整列表)
429
+
430
+ | 分类 | 变量 | 默认 | 说明 |
431
+ |------|------|------|------|
432
+ | **安全** | `SSH_SECURITY_LEVEL` | `balanced` | 安全级别:`strict` / `balanced` / `relaxed` |
433
+ | | `SSH_BASE_DIR` | `/home` | 路径校验基目录 |
434
+ | | `SSH_EXTRA_ALLOWED_COMMANDS` | (空) | 额外允许的命令(逗号分隔) |
435
+ | | `SSH_ALLOWED_COMMANDS_FILE` | (空) | 命令白名单 JSON 文件路径 |
436
+ | | `SSH_AUDIT_LOG_PATH` | (空) | 审计日志文件路径 |
437
+ | **限流** | `SSH_RATE_LIMIT` | `true` | 限流总开关(bool) |
438
+ | | `SSH_RATE_LIMIT_MAX` | `30` | 限流次数上限 |
439
+ | | `SSH_RATE_LIMIT_WINDOW` | `60` | 限流窗口(秒) |
440
+ | **加固点 1** | `SSH_RUNTIME_GUARD` | `false` | runtime guard 总开关 |
441
+ | | `SSH_RUNTIME_ALLOW_ROOT` | `false` | 是否允许 root 启动 |
442
+ | | `SSH_RUNTIME_ALLOWED_USERS` | (空) | 允许启动的账号白名单 |
443
+ | | `SSH_RUNTIME_BLOCK_SUDO` | `true` | 是否拦截 sudo 上下文 |
444
+ | **加固点 2** | `SSH_SECRET_PROVIDER_ENABLED` | `false` | secret provider 总开关 |
445
+ | | `SSH_SECRET_PROVIDER` | `env` | 凭证 provider:`env` / `command` / `http` |
446
+ | | `SSH_SECRET_ENV_KEY_<NAME>` | — | env provider:私钥环境变量 |
447
+ | | `SSH_SECRET_COMMAND_<NAME>` | — | command provider:拉取私钥的命令 |
448
+ | | `SSH_SECRET_HTTP_URL_<NAME>` | — | http provider:拉取私钥的 URL |
449
+ | | `SSH_SECRET_HTTP_TOKEN` | — | http provider:Bearer token |
450
+ | | `SSH_SECRET_HTTP_TIMEOUT` | `15` | http provider:HTTP 超时(秒) |
451
+ | **加固点 3** | `SSH_REMOTE_GUARD` | `false` | 远端元字符拦截总开关 |
452
+ | **加固点 4** | *(无 env)* | — | 灾难性命令硬拦截,零配置零绕过 |
453
+ | **连接默认** | `SSH_HOST` / `SSH_PORT` / `SSH_USER` / `SSH_PASSWORD` | `127.0.0.1` / `22` / `root` / (空) | 单 host 模式默认连接参数 |
454
+ | | `SSH_TIMEOUT` | `60` | 连接超时(秒) |
455
+ | | `SSH_KEEPALIVE_INTERVAL` | `30` | keepalive 间隔(秒) |
456
+ | | `SSH_SESSION_TIMEOUT` | `7200` | 会话超时(秒) |
457
+ | | `SSH_CLIENT_TYPE` | `paramiko` | SSH 客户端实现:`paramiko` / `asyncssh` |
458
+ | | `SSH_FORCE_ENV_CONFIG` | `false` | 强制 env 配置覆盖 hosts.json |
459
+ | | `SSH_SUDO_PASSWORD` | (空) | sudo 密码,配合 `use_sudo=true` 走 `sudo -S` |
460
+
423
461
  ---
424
462
 
425
463
  ## ⚠️ 依赖版本兼容性
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "ssh-licco"
3
- version = "2.3.0"
3
+ version = "2.3.1"
4
4
  description = "SSH Model Context Protocol Server - Enable SSH functionality for AI models"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ssh-licco
3
- Version: 2.3.0
3
+ Version: 2.3.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
@@ -453,6 +453,44 @@ localhost:5432 - accepting connections
453
453
 
454
454
  - **[MCP_CONFIG_GUIDE.md](MCP_CONFIG_GUIDE.md)** - 包含所有配置选项的详细说明
455
455
 
456
+ ### 🌐 完整环境变量速查(v2.3.0)
457
+
458
+ > 下表所有变量均被代码读取。**注意**:
459
+ > - `SSH_RATE_LIMIT` 是 **bool** 总开关(true/false),`SSH_RATE_LIMIT_MAX` 才是次数上限,两者分开配置
460
+ > - 主机密钥检查(strict_host_key_checking)**不通过 env 配置**,请用 `ssh_connect` 工具参数或 `hosts.json`
461
+ > - 详细分组说明见 [docs/SECURITY_HARDENING.md#环境变量速查](docs/SECURITY_HARDENING.md#环境变量速查v230-完整列表)
462
+
463
+ | 分类 | 变量 | 默认 | 说明 |
464
+ |------|------|------|------|
465
+ | **安全** | `SSH_SECURITY_LEVEL` | `balanced` | 安全级别:`strict` / `balanced` / `relaxed` |
466
+ | | `SSH_BASE_DIR` | `/home` | 路径校验基目录 |
467
+ | | `SSH_EXTRA_ALLOWED_COMMANDS` | (空) | 额外允许的命令(逗号分隔) |
468
+ | | `SSH_ALLOWED_COMMANDS_FILE` | (空) | 命令白名单 JSON 文件路径 |
469
+ | | `SSH_AUDIT_LOG_PATH` | (空) | 审计日志文件路径 |
470
+ | **限流** | `SSH_RATE_LIMIT` | `true` | 限流总开关(bool) |
471
+ | | `SSH_RATE_LIMIT_MAX` | `30` | 限流次数上限 |
472
+ | | `SSH_RATE_LIMIT_WINDOW` | `60` | 限流窗口(秒) |
473
+ | **加固点 1** | `SSH_RUNTIME_GUARD` | `false` | runtime guard 总开关 |
474
+ | | `SSH_RUNTIME_ALLOW_ROOT` | `false` | 是否允许 root 启动 |
475
+ | | `SSH_RUNTIME_ALLOWED_USERS` | (空) | 允许启动的账号白名单 |
476
+ | | `SSH_RUNTIME_BLOCK_SUDO` | `true` | 是否拦截 sudo 上下文 |
477
+ | **加固点 2** | `SSH_SECRET_PROVIDER_ENABLED` | `false` | secret provider 总开关 |
478
+ | | `SSH_SECRET_PROVIDER` | `env` | 凭证 provider:`env` / `command` / `http` |
479
+ | | `SSH_SECRET_ENV_KEY_<NAME>` | — | env provider:私钥环境变量 |
480
+ | | `SSH_SECRET_COMMAND_<NAME>` | — | command provider:拉取私钥的命令 |
481
+ | | `SSH_SECRET_HTTP_URL_<NAME>` | — | http provider:拉取私钥的 URL |
482
+ | | `SSH_SECRET_HTTP_TOKEN` | — | http provider:Bearer token |
483
+ | | `SSH_SECRET_HTTP_TIMEOUT` | `15` | http provider:HTTP 超时(秒) |
484
+ | **加固点 3** | `SSH_REMOTE_GUARD` | `false` | 远端元字符拦截总开关 |
485
+ | **加固点 4** | *(无 env)* | — | 灾难性命令硬拦截,零配置零绕过 |
486
+ | **连接默认** | `SSH_HOST` / `SSH_PORT` / `SSH_USER` / `SSH_PASSWORD` | `127.0.0.1` / `22` / `root` / (空) | 单 host 模式默认连接参数 |
487
+ | | `SSH_TIMEOUT` | `60` | 连接超时(秒) |
488
+ | | `SSH_KEEPALIVE_INTERVAL` | `30` | keepalive 间隔(秒) |
489
+ | | `SSH_SESSION_TIMEOUT` | `7200` | 会话超时(秒) |
490
+ | | `SSH_CLIENT_TYPE` | `paramiko` | SSH 客户端实现:`paramiko` / `asyncssh` |
491
+ | | `SSH_FORCE_ENV_CONFIG` | `false` | 强制 env 配置覆盖 hosts.json |
492
+ | | `SSH_SUDO_PASSWORD` | (空) | sudo 密码,配合 `use_sudo=true` 走 `sudo -S` |
493
+
456
494
  ---
457
495
 
458
496
  ## ⚠️ 依赖版本兼容性
@@ -1,8 +1,8 @@
1
1
  # SSH-LICCO 版本信息
2
2
  # 所有代码中的版本信息都从这里读取
3
- # 版本号:2.3.0
3
+ # 版本号:2.3.1
4
4
 
5
- __version__ = "2.3.0"
5
+ __version__ = "2.3.1"
6
6
  __author__ = "Li Qi"
7
7
  __email__ = "1985694657@qq.com"
8
8
  __license__ = "MIT"
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