-
Notifications
You must be signed in to change notification settings - Fork 0
Security Config Guide
licco edited this page Aug 2, 2026
·
1 revision
- 适用场景: 生产环境、公共服务器
-
特点:
- 最严格的命令验证
- 禁止所有危险字符
- 限制访问敏感路径
- 安全评分: 最高
- 适用场景: 开发环境、个人服务器
-
特点:
- 适度的命令验证
- 只禁止关键危险字符
- 合理的访问限制
- 安全评分: 高
- 适用场景: 测试环境、完全信任的服务器
-
特点:
- 最小化的命令验证
- 允许更多命令
- 宽松的访问限制
- 安全评分: 中等
# 设置安全级别
$env:SSH_SECURITY_LEVEL = "balanced"
# 添加额外允许的命令
$env:SSH_EXTRA_ALLOWED_COMMANDS = "git,pip,npm"
# 启动服务器
python -m ssh_mcp.server# 设置安全级别
export SSH_SECURITY_LEVEL="balanced"
# 添加额外允许的命令
export SSH_EXTRA_ALLOWED_COMMANDS="git,pip,npm"
# 启动服务器
python -m ssh_mcp.server编辑 mcp.config.json:
{
"mcpServers": {
"ssh": {
"command": "ssh-licco",
"env": {
"SSH_SECURITY_LEVEL": "balanced",
"SSH_EXTRA_ALLOWED_COMMANDS": "git,pip,npm",
"SSH_BASE_DIR": "/home"
}
}
}
}描述: 设置安全级别
可选值:
-
strict- 严格模式 -
balanced- 平衡模式(默认) -
relaxed- 宽松模式
示例:
export SSH_SECURITY_LEVEL="strict"描述: 额外允许的命令(逗号分隔)
示例:
# 允许 git, pip, npm
export SSH_EXTRA_ALLOWED_COMMANDS="git,pip,npm"
# 允许 apt-get, curl, wget
export SSH_EXTRA_ALLOWED_COMMANDS="apt-get,curl,wget"注意:
- 不要添加空格
- 命令必须在服务器上存在
- 仅在当前会话生效
描述: 允许访问的基础目录
默认值: /home
示例:
# 允许访问 /var/www
export SSH_BASE_DIR="/var/www"
# 允许访问 /tmp
export SSH_BASE_DIR="/tmp"# 需要 git, npm, docker 等命令
export SSH_SECURITY_LEVEL="balanced"
export SSH_EXTRA_ALLOWED_COMMANDS="git,npm,docker,composer"
export SSH_BASE_DIR="/var/www"
python -m ssh_mcp.server# 需要 pip, python, venv 等
export SSH_SECURITY_LEVEL="balanced"
export SSH_EXTRA_ALLOWED_COMMANDS="pip,pip3,python3,poetry"
export SSH_BASE_DIR="/home"
python -m ssh_mcp.server# 需要更多系统管理命令
export SSH_SECURITY_LEVEL="relaxed"
export SSH_EXTRA_ALLOWED_COMMANDS="sudo,apt,yum,systemctl,journalctl"
python -m ssh_mcp.server# 严格模式,不添加额外命令
export SSH_SECURITY_LEVEL="strict"
export SSH_BASE_DIR="/home"
python -m ssh_mcp.serverls, dir, cd, pwd, cat, head, tail, less, more
grep, find, which, whereis
uname, hostname, whoami, uptime, date, cal
top, htop, ps, free, df, du
ping, netstat, ss, dig, nslookup
cp, mv, rm, mkdir, rmdir, touch, chmod, chown
ln, tar, gzip, zip, unzip
echo, printf, sed, awk, cut, sort, uniq, wc
docker, docker-compose
systemctl, journalctl, service
sudo, su
wget, curl
apt-get, apt, yum, dnf, pacman
pip, pip3, npm, yarn
git, svn
python3, python, node, java
vim, vi, nano, emacs
ssh, scp, rsync
kill, pkill, killall
通过 SSH_EXTRA_ALLOWED_COMMANDS 添加任意命令。
# 访问敏感文件
cat /etc/shadow
cat /root/.ssh/id_rsa
# 路径遍历
../../../etc/passwd# 命令注入
ls -la; rm -rf /
echo "test" | sudo bash
$(whoami)
`id`错误信息:
❌ 安全错误:命令 'git' 不在允许列表中。
当前安全级别:balanced
如需使用该命令,请设置环境变量:SSH_EXTRA_ALLOWED_COMMANDS=git
解决方法:
export SSH_EXTRA_ALLOWED_COMMANDS="git"错误信息:
❌ 安全错误:禁止访问敏感路径:/etc
这是为了保护系统关键文件。
解决方法:
- 该路径被永久禁止,无法访问
- 或切换到 RELAXED 模式
问题: 设置了环境变量但不生效
检查:
# 检查环境变量是否设置
echo $SSH_SECURITY_LEVEL
# 检查拼写是否正确
# 应该是:strict, balanced, relaxed 之一| 特性 | STRICT | BALANCED | RELAXED |
|---|---|---|---|
| 命令白名单 | 基础 | 基础 | 基础 + 扩展 |
| 危险字符检查 | 9 种 | 4 种 | 无 |
| 路径遍历保护 | ✅ | ✅ | ❌ |
| 敏感路径保护 | ✅ | ✅ | ❌ |
| 自定义命令 | ✅ | ✅ | ✅ |
| 安全评分 | 最高 | 高 | 中等 |
| 适用场景 | 生产 | 开发 | 测试 |
- 生产服务器: STRICT
- 开发服务器: BALANCED
- 个人测试: RELAXED
只添加确实需要的命令:
# ✅ 好:只添加需要的
SSH_EXTRA_ALLOWED_COMMANDS="git,npm"
# ❌ 不好:添加太多
SSH_EXTRA_ALLOWED_COMMANDS="git,npm,pip,apt,curl,wget,python,vim..."检查 .bashrc 或配置文件中的设置:
grep SSH_ ~/.bashrc创建 .env 文件(不要提交到 Git):
SSH_SECURITY_LEVEL=balanced
SSH_EXTRA_ALLOWED_COMMANDS=git,npm
SSH_BASE_DIR=/var/www- GitHub: https://github.com/Echoqili/ssh-licco
-
安全模块:
ssh_mcp/security.py -
示例配置:
.env.example
安全第一,灵活配置! 🚀