使用说明
MCP SSH服务器
一个模型上下文协议(MCP)服务器,提供对远程服务器的SSH访问,允许Claude Desktop或VS Code等AI工具安全地连接到您的VPS进行网站管理。
特性
- 基于密码或密钥的身份验证的SSH连接管理
- 具有超时处理的远程命令执行
- 通过SFTP上传和下载文件
- 目录列表
- 安全连接处理
- 与Claude Desktop、VS Code和其他MCP兼容客户端兼容
先决条件
- Node.js 18或更高版本
- npm或纱线
- 与Windows、macOS和Linux兼容
安装
-
克隆存储库:
git clone https://github.com/yourusername/mcp-ssh-server.git cd mcp-ssh-server -
安装依赖项:
npm install -
构建项目:
npm run build -
全局安装(可选):
npm install -g .
配置
Claude桌面配置
- 打开克劳德桌面
- 转到“设置”>“开发工具”(或按Ctrl+Shift+D)
- 编辑MCP配置
- 添加以下配置:
{
"mcpServers": {
"ssh-server": {
"command": "node",
"args": ["/path/to/mcp-ssh-server/build/index.js"],
"env": {
"NODE_NO_WARNINGS": "1"
}
}
}
}
重要提示: 替换 /path/to/mcp-ssh-server/build/index.js 带有您构建的index.js文件的绝对路径。
VS代码配置(如果使用MCP扩展)
创建或编辑 .vscode/mcp.json 在您的工作空间中:
{
"mcpServers": {
"ssh-server": {
"command": "node",
"args": ["/path/to/mcp-ssh-server/build/index.js"]
}
}
}
可用工具
ssh-connect
建立与远程服务器的SSH连接。
参数:
host(必填)-主机名或IP地址username(必填)-SSH用户名password(可选)-SSH密码privateKeyPath(可选)-私钥文件的路径passphrase(可选)-私钥密码port(可选)-SSH端口(默认值:22)connectionId(可选)-此连接的唯一标识符
退货:
success-布尔值表示成功connectionId-用于后续命令的IDmessage-连接状态消息
例子:
Connect to my server at example.com using username 'admin' and password authentication
ssh_exec
在远程服务器上执行命令。
参数:
connectionId(必填)-来自ssh_connect的IDcommand(必填)-执行命令cwd(可选)-工作目录timeout(可选)-命令超时(毫秒)(默认值:60000)
退货:
code-退出代码signal-终止进程的信号(如果有的话)stdout-标准输出stderr-标准误差
例子:
Run "ls -la /var/www/html" on the server
ssh_upload_file
将文件上载到远程服务器。
参数:
connectionId(必填)-来自ssh_connect的IDlocalPath(必需)-本地文件路径remotePath(必需)-远程目标路径
退货:
success-布尔值表示成功message-上传状态消息
ssh下载文件
从远程服务器下载文件。
参数:
connectionId(必填)-来自ssh_connect的IDremotePath(必需)-远程文件路径localPath(必需)-本地目标路径
退货:
success-布尔值表示成功message-下载状态消息
ssh列表文件
列出远程服务器上某个目录中的文件。
参数:
connectionId(必填)-来自ssh_connect的IDremotePath(必需)-列表的目录路径
退货:
files-具有属性的文件对象数组:filename-文件名isDirectory-布尔值,指示它是否是一个目录size-文件大小lastModified-上次修改时间
ssh断开连接
关闭SSH连接。
参数:
connectionId(必填)-来自ssh_connect的ID
退货:
success-布尔值表示成功message-断开连接状态消息
Claude使用示例
-
连接到您的服务器:
Please connect to my VPS at example.com using username 'admin' and my SSH key at ~/.ssh/id_rsa -
检查服务器状态:
Run the command "systemctl status nginx" to check web server status -
上传网站文件:
Upload my local file ~/websites/index.html to /var/www/html/index.html on the server -
列出网站文件:
Show me all files in the /var/www/html directory -
下载备份:
Download the file /var/backups/website-backup.tar.gz to my local Downloads folder -
完成后断开连接:
Please disconnect from the SSH session
计划中的Ubuntu网站管理工具
基础已经到位,可以在中添加Ubuntu网站管理工具 src/ubuntu-website-tools.ts未来的增强功能将包括:
- Web服务器控制(Apache/Nginx)
- 系统包更新
- 带备份的网站部署
- SSL证书管理(Let’s Encrypt)
- 服务器性能监控
- 网站备份功能
- WordPress管理
- 防火墙(UFW)管理
安全说明
- 安全地存储SSH私钥
- 尽可能使用基于密钥的身份验证
- 限制SSH访问特定IP地址
- 保持服务器更新
- 使用强密码或短语
- 考虑在
.env敏感信息文件
故障排除
服务器无法启动
- 检查是否安装了Node.js:
node --version - 验证是否安装了所有依赖项:
npm install - 重建项目:
npm run build
连接问题
- 验证SSH服务器是否在目标上运行
- 检查防火墙设置
- 确认凭据正确
- 首先手动测试SSH连接
Claude桌面集成
- 确保配置中的路径是绝对的
- 配置更改后重新启动Claude Desktop
- 检查开发人员控制台以获取错误消息
发展
要修改或扩展服务器,请执行以下操作:
- 在中编辑源文件
src/ - 重建:
npm run build - 测试您的更改
- 重新启动Claude Desktop或VS Code以获取更改
以开发模式运行
在开发过程中进行快速测试:
npm run dev
贡献
欢迎对其他工具和功能的贡献。请随时提交pull请求或开放问题以进行增强和bug修复。
许可证
MIT许可证
