这是一个使用 Model Context Protocol (MCP) 协议实现的 SSH 服务器,提供了安全的远程访问和执行功能。
要通过 Smithery 自动安装 SSH 服务器:
npx -y @smithery/cli install @KinoThe-Kafkaesque/ssh-mcp-server --client claude
git clone <repository-url>
cd ssh-server
npm install
npm run build
该服务器使用一个 SQLite 数据库 (ssh.db) 来存储 SSH 凭证。当服务器启动时,数据库文件会自动创建。
该服务器提供了以下工具:
通过 SSH 执行命令。
输入参数:
host: 要连接的主机。 (必需)command: 要执行的命令。 (必需)username: 用于 SSH 连接的用户名。 (必需)privateKeyPath: 私钥文件的路径。 (必需)示例用法:
{
"tool_name": "ssh_exec",
"arguments": {
"host": "example.com",
"command": "ls -l",
"username": "user",
"privateKeyPath": "/path/to/private/key"
}
}
注意: privateKeyPath 必须是有效的私钥文件路径。
添加新的 SSH 凭证。
输入参数:
name: 凭证的名称。 (必需)host: 要连接的主机。 (必需)username: 用于 SSH 连接的用户名。 (必需)privateKeyPath: 私钥文件的路径。 (必需)示例用法:
{
"tool_name": "add_credential",
"arguments": {
"name": "my_credential",
"host": "example.com",
"username": "user",
"privateKeyPath": "/path/to/private/key"
}
}
注意: privateKeyPath 必须是有效的私钥文件路径。
列出所有存储的 SSH 凭证。
输入参数:
示例用法:
{
"tool_name": "list_credentials",
"arguments": {}
}
移除存储的 SSH 凭证。
输入参数:
name: 要移除的凭证名称。 (必需)示例用法:
{
"tool_name": "remove_credential",
"arguments": {
"name": "my_credential"
}
}
npm start
服务器将在配置的端口上运行(默认设置可以在源代码中修改)。
src/ - 源代码目录build/ - 编译后的 JavaScript 输出node_modules/ - 项目依赖@modelcontextprotocol/sdk: MCP 协议实现sqlite3: SQLite 数据库驱动typescript: 支持 TypeScript 的开发依赖要对项目进行更改:
src/ 目录中进行更改npm run build
npm start
ISC