SSH会话管理服务器

通过Model Context Protocol接口提供安全Shell访问的SSH MCP服务器,支持会话管理、命令执行和特权操作。

  • by format37
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 format37/ssh-mcp

使用说明

ssh-mcp

SSH MCP服务器,通过模型上下文协议接口提供对本地机器的安全shell访问。

概述

此服务器使用Paramiko实现SSH客户端,并通过MCP工具公开SSH功能,允许AI助手在本地计算机上安全地执行命令。

特性

  • 会话管理:使用唯一的会话ID创建、管理和关闭SSH会话
  • 命令执行:使用正确的输入处理执行shell命令
  • Sudo支持:用于运行具有密码身份验证的特权命令的专用工具
  • 交互式命令:支持需要用户输入的命令(例如sudo提示)
  • 线程安全:具有适当锁定的并发会话管理

工具

  • ssh_start_session:初始化与localhost的SSH连接
  • ssh_exec_command:使用可选输入执行shell命令
  • ssh_exec_sudo_command:运行带有自动密码处理的sudo命令
  • ssh_close_session:清理SSH会话

快速开始

  1. 安装依赖项:

    pip install -r requirements.txt
    
  2. 启动服务器:

    ./start.sh
    

服务器运行在 http://0.0.0.0:7777 并为MCP通信提供SSE(服务器发送事件)端点。

配置

默认SSH凭据:

  • 主机名:localhost
  • 用户名:alex
  • 密码:您的通行证

备注:在中更新这些凭据 server.py 用于生产用途。

Claude桌面配置

如果使用Linux,您的配置文件夹是:

/home/username/.config/Claude/claude_desktop_config.json

要启用此功能,您需要在claude桌面中启用它:文件/配置/开发人员/编辑配置

SSH守护程序:

配置ssh守护进程:

nano /etc/systemd/system/ssh-mcp.service

粘贴(更新您的用户名):

[Unit]                                                                                                                                                                                                                                                         
Description=SSH MCP Server                                                                                                                                                                                                                                     
After=network.target                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                               
[Service]                                                                                                                                                                                                                                                      
User=alex                                                                                                                                                                                                                                                      
WorkingDirectory=/home/alex/projects/ssh-mcp
ExecStart=/bin/bash -c 'eval "$(/home/alex/anaconda3/bin/conda shell.bash hook)" && conda activate base && /home/alex/anaconda3/bin/uvicorn server:app --host 0.0.0.0 --port 7777'
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

开始

sudo systemctl daemon-reload
sudo systemctl enable ssh-mcp.service
sudo systemctl start ssh-mcp.service