MCP工具--SSH Server
https://github.com/bvisible/mcp-ssh-manager
最近做一个python2到python3的升级,依赖goldendb环境运行。需要不断在机器上根据机器的反馈,调整代码。
开发工作流
需要定制一个开发工作流:
- 登录mcp_server连接omm179 ,远程项目目录为project_path="/home/wzx/insighttool/"
- 执行cmdA="cd /home/wzx/insighttool/onekeypatrol_and_diag_61212_and_later && find . -type f -print0 | xargs -0 dos2unix -q -k -s -o && python check_required_packages.py"
- 查看报错,给出python2 和 python3.9.6 版本语法兼容的修复方案。更新方案文档 @D:/SRC/python/InsightTool/InsightTool/doc/py3Adapt.md && 修复项目代码
- 通过scp 上传修改的代码文件到服务器上对应的目录scp [filePath] root@10.228.142.179:/home/wzx/insighttool/,继续验证cmdA
- 不断loop 2-4, 直到cmdA运行成功为止。
用例工作流
/superpowers:brainstorming 讨论方案:
- 根据 2.1章节 @D:/SRC/python/InsightTool/InsightTool/onekeypatrol_and_diag_61212_and_later/巡检工具使用手册.md#L62 设计测试用例,输出到@D:/SRC/python/InsightTool/InsightTool/onekeypatrol_and_diag_61212_and_later/dev_log/testCase
- 需要定制一个测试用例工作流:
1). 登录mcp_server连接omm179 ,远程项目目录为project_path="/home/wzx/insighttool/",上传本地文件diag_report_html,onekeypatrol_and_diag_61212_and_later,tools
2). 执行测试用例cmdA="cd /home/wzx/insighttool/onekeypatrol_and_diag_61212_and_later && find . -type f -print0 | xargs -0 dos2unix -q -k -s -o && {testCaseCmd}"
3). 记录结果并分析原因输出到当日日期的文件里
4). 继续执行下一个测试用例
5). 不断loop 2-4, 直到测试用例都运行结束为止。
针对上述用例自动化的方案,设计方案到@D:/SRC/python/InsightTool/InsightTool/doc/testCase.md 。暂不写代码。
windows环境配置
1)npm install -g mcp-ssh-manager #确保你的系统已安装 Node.js 18+ 和 Python 环境
2)生成ssh key
a.在 Windows 终端(PowerShell 或 CMD)中执行:
bash
ssh-keygen -t rsa -b 4096
按提示操作,一般直接回车使用默认路径即可。
b.将公钥复制到远程服务器:
使用 PowerShell 的 type 和 ssh 命令组合来完成:
bash
ssh 用户名@服务器IP "mkdir -p ~/.ssh && echo ****** >> ~/.ssh/authorized_keys"
(请将 用户名@服务器IP 替换为你的实际信息)
3)ssh-manager server add #使用ssh key
C:\Users\0313000534>ssh-manager server add
⚠️ Missing optional dependencies: rsync jq sshpass
ℹ️ Some features may not work without them (rsync is needed for 'ssh-manager sync')
Add New SSH Server
============================================================
Server name (e.g., prod1, web_server) — letters, digits, underscore only: omm179_2
Host/IP address: 10.228.142.179
Username [root]:
Port [22]:
Authentication method:
1) SSH Key
2) Password
Choose [1-2]: 1
SSH key path [/c/Users/0313000534/.ssh/id_rsa]:
Description (optional):
ℹ️ Security mode (optional — press Enter to skip and keep current behavior)
ℹ️ unrestricted = no filter (default, identical to v3.4.x)
ℹ️ readonly = block mutating tools + built-in destructive command denylist
ℹ️ restricted = command must match SSH_SERVER_<N>_ALLOW_PATTERNS
Mode [unrestricted|readonly|restricted] [unrestricted]:
ℹ️ Audit log: absolute file path to append a JSONL audit record per tool call
AUDIT_LOG path (optional):
验证:
ssh-manager exec omm179 "ls /home"
4) 找到安装路径
C:\Users\0313000534>where mcp-ssh-manager
C:\Users\0313000534\AppData\Roaming\npm\mcp-ssh-manager
5)执行claude安装
claude mcp add ssh-manager node C:/Users/0313000534/AppData/Roaming/npm/node_modules/mcp-ssh-manager/src/index.js
6) 验证
C:\Users\0313000534>claude
/reload-plugins
List all my SSH servers, based on MCP server

7) pycharm/idea/cc-switch 运行
在项目根目录下添加 .mcp.json文件

{
"mcpServers": {
"ssh-manager": {
"type": "stdio",
"command": "node",
"args": [
"C:/Users/0313000534/AppData/Roaming/npm/node_modules/mcp-ssh-manager/src/index.js"
],
"env": {},
"autoApprove": [
"mcp__ssh-manager__ssh_execute",
"mcp__ssh-manager__ssh_list_servers",
"mcp__ssh-manager__ssh_upload",
"mcp__ssh-manager__ssh_download",
"mcp__ssh-manager__ssh_sync",
"mcp__ssh-manager__ssh_alias",
"mcp__ssh-manager__ssh_deploy",
"mcp__ssh-manager__ssh_execute_sudo",
"mcp__ssh-manager__ssh_tunnel_create",
"mcp__ssh-manager__ssh_tunnel_list",
"mcp__ssh-manager__ssh_tunnel_close",
"mcp__ssh-manager__ssh_session_start",
"mcp__ssh-manager__ssh_session_send",
"mcp__ssh-manager__ssh_session_list",
"mcp__ssh-manager__ssh_session_close",
"mcp__ssh-manager__ssh_execute_group",
"mcp__ssh-manager__ssh_group_manage",
"mcp__ssh-manager__ssh_tail",
"mcp__ssh-manager__ssh_monitor",
"mcp__ssh-manager__ssh_history",
"mcp__ssh-manager__ssh_connection_status",
"mcp__ssh-manager__ssh_key_manage",
"mcp__ssh-manager__ssh_command_alias",
"mcp__ssh-manager__ssh_hooks",
"mcp__ssh-manager__ssh_profile"
]
}
}
}
issue:
- SSH Key 失败,退后为passwd校验
ssh-manager server test omm221
⚠️ Missing optional dependencies: rsync jq sshpass
ℹ️ Some features may not work without them (rsync is needed for 'ssh-manager sync')
ℹ️ Testing connection to omm221 (root@10.228.142.221:22)...
root@10.228.142.221's password:
Done: ~/.ssh权限不对
目录权限:~/.ssh 必须为 700 (drwx------)。
文件权限:authorized_keys 必须为 600 (-rw-------)。
附录:
EXAMPLES:
# Add a new server
ssh-manager server add
# List all servers
ssh-manager server list
# Test connection to prod1
ssh-manager server test prod1
# Sync files to server
ssh-manager sync push prod1 ./app /var/www/app
# Create SSH tunnel
ssh-manager tunnel create prod1 local 3307:localhost:3306
# Monitor server
ssh-manager monitor prod1 cpu
ssh-manager --help
SSH Manager CLI - Simple and powerful SSH server management
USAGE:
ssh-manager # Interactive mode (menu)
ssh-manager -i # Interactive mode (menu)
ssh-manager <command> # Direct command mode
COMMANDS:
server Server management
add Add a new server
list List all servers
test Test server connection
remove Remove a server
edit Edit server configuration
show Show server details
sync File synchronization (rsync)
push Push files to server
pull Pull files from server
tunnel SSH tunnel management
create Create a new tunnel
list List active tunnels
close Close a tunnel
monitor System monitoring
cpu Monitor CPU usage
memory Monitor memory usage
disk Monitor disk usage
network Monitor network
session SSH session management
start Start interactive session
list List active sessions
close Close a session
exec Execute commands
run Run command on server
group Run on server group
config Configuration
edit Edit configuration
show Show configuration
init Initialize configuration
tools Tool activation/deactivation
list Show all tools and their status
configure Interactive configuration wizard
enable Enable a tool group
disable Disable a tool group
reset Reset to default (all tools enabled)
export Export Claude Code auto-approval config
OPTIONS:
-h, --help Show this help message
-v, --version Show version
-q, --quiet Quiet mode
-d, --debug Debug mode
CONFIGURATION:
Config directory: /c/Users/0313000534/.ssh-manager
Server config: /c/Users/0313000534/.ssh-manager/.env
DOCUMENTATION:
https://github.com/bvisible/mcp-ssh-manager
1
check
python check_required_packages.py
less log/onekey_diag.log |grep "[ERROR]"
2
install
python onekey_diag.py --action=install --obj_module=all
less log/onekey_diag.log |grep "[ERROR]"
3
start
python onekey_diag.py --action=start
less log/onekey_diag.log |grep "[ERROR]"
ps -aux|grep diag_monidamon_process
4
stop
python onekey_diag.py --action=stop
less log/onekey_diag.log |grep "[ERROR]"
ps -aux|grep diag_monidamon_process
5
diag
python onekey_diag.py --action=diag --time_before 30min
less log/onekey_diag.log |grep "[ERROR]"
报告正常输出
6
expand
python onekey_diag.py --action expand --obj_module all
less log/onekey_diag.log |grep "[ERROR]"
7
upgrade_config
python onekey_diag.py --action upgrade_config --obj_module all
less log/onekey_diag.log |grep "[ERROR]"
8
upgrade_script
python onekey_diag.py --action upgrade_script --obj_module all
less log/onekey_diag.log |grep "[ERROR]"
9
upgrade_script
python onekey_diag.py --action collect --model normal --time_before 30min
less log/onekey_diag.log |grep "[ERROR]"
10
exec工具
python onekey_diag.py --action exec --tool dn_sql_func --param='--func=NO_CONSTRAINT_TABLE' --obj_module dn --strategy db_slave
less log/onekey_diag.log |grep "[ERROR]"
日志输出成功
11
自定义巡检
python onekey_diag.py --action func_check --obj_cluster all
less log/onekey_diag.log |grep "[ERROR]"
csv有内容
12
慢日志收集
python onekey_diag.py --action collect_slow_log --obj_cluster all --time_before 1hour
less log/onekey_diag.log |grep "[ERROR]"
cgwin
https://blog.csdn.net/qq_53614788/article/details/134492367

浙公网安备 33010602011771号