使用说明
ssh-mcp-go
用于SSH操作的MCP服务器,由以下组件构建:
- https://github.com/mark3labs/mcp-go
- https://github.com/melbahja/goph
它通过stdio公开了三个工具:
ssh_exec:运行远程命令并返回输出ssh_upload:将本地文件或目录上载到远程ssh_download:将远程文件或目录下载到本地ssh_exec_dynamic:使用每次调用的SSH参数运行远程命令
需求
- 转到1.20+(推荐)
- 您可以访问的SSH服务器
环境变量
SSH_SERVER(必填):user@host或hostSSH_PORT(可选,默认22)SSH_KEY(可选):私钥路径SSH_PASSPHRASE或SSH_KEY_PASSPHRASE(可选):私钥密码SSH_PASSWORD(可选):密码验证(也用于键盘交互)SSH_USER(可选):用户名SSH_SERVER不包括user@
身份验证优先级很简单:如果 SSH_KEY 如果已设置,则包含其密钥认证;如果
SSH_PASSWORD 已设置,包括密码验证。必须至少提供一个。
构建
go build -o ssh-mcp-go .
运行(stdio)
SSH_SERVER=user@host \
SSH_PORT=22 \
SSH_KEY=~/.ssh/id_rsa \
SSH_PASSPHRASE=your_passphrase \
./ssh-mcp-go
工具使用(示例)
从MCP客户端,使用以下参数调用工具:
ssh_execcommand(字符串)
ssh_uploadlocal_path(字符串)remote_path(字符串)
ssh_downloadremote_path(字符串)local_path(字符串)
ssh_exec_dynamicserver(字符串、主机或user@host)user(字符串,如果服务器没有用户@,则必需)port(int,可选)password(字符串,可选)key_path(字符串,可选)passphrase(字符串,可选)command(字符串)
备注
- 未强制执行主机密钥验证(使用
InsecureIgnoreHostKey). - 目录传输是递归的。
