Skip to content

Security: 668mt/ssh-driver

Security

SECURITY.md

Security Policy

支持的版本

版本 支持安全修复
0.2.x ✅
< 0.2 ❌

报告安全漏洞

请勿通过公开 Issue 报告安全问题。

请通过 GitHub 的 Private Vulnerability Reporting 提交报告,你需要一个 GitHub 账号(免费即可)。

报告请包含:

  • 受影响的版本
  • 漏洞描述与复现步骤
  • 潜在影响
  • 你的联系方式(可选)

我通常会在 48 小时内响应,7 天内给出修复方案或缓解措施。

本项目已知的信任边界

ssh-driver 是一个本地开发工具,请了解以下设计取舍:

配置明文存储

主机密码以明文保存在 ~/.ssh-driver/config.json(文件权限 0600)。

这是为了让用户能在控制台随时查看和修改密码。这意味着:

  • ⚠️ 不要把 ~/.ssh-driver/config.json 提交到 Git 仓库
  • ⚠️ 不要把它放在云同步目录(iCloud Drive、OneDrive、Dropbox 等)
  • ⚠️ 不要在共享机器上使用,除非该机器只有你一个人登录
  • 导出的备份文件(/api/io/export)已脱敏为 ***,可以安全分享

本地 HTTP 服务

ssh-driver console 会在 127.0.0.1:7843 启动一个 HTTP 服务:

  • 默认仅监听回环地址,局域网内其他机器无法访问
  • 服务本身没有鉴权,任何能访问该端口的进程都能读写你的 SSH 配置
  • 如果用 --host 0.0.0.0 改成对外监听,请自行配置防火墙或反向代理做访问控制

远程命令执行

ssh-driver exec 会在目标主机上执行你提供的任意 shell 命令:

  • 它等同于把 SSH 客户端的能力开放给调用方
  • 如果 AI Agent 拿到了不可信的输入,务必先确认命令内容再执行
  • 建议遵循最小权限原则:不要用 root 账号做日常操作

加固建议

  1. 用私钥代替密码,并给私钥设置 600 权限
  2. 服务器侧禁用密码登录,只允许密钥认证
  3. 为不同用途创建不同的 SSH 用户,配合 sudo 按需提权
  4. 审查 AI 生成的命令,尤其是涉及 rm、dd、chmod 的操作
  5. 定期轮换密码 / 私钥

There aren't any published security advisories