音频关键字过滤工具 - 根据关键字配置自动识别并删除音频中的指定内容
日本語の概要は準備中です。原文の説明を表示しています。
VPS 安全加固自动化 Skill。通过 SSH 登录 VPS 并执行完整的安全策略配置。
触发场景: - "加固VPS安全"、"VPS安全配置"、"新VPS初始化" - "配置SSH安全"、"修改SSH端口"、"禁用root密码登录" - "VPS安全加固"、"服务器安全设置"、"hardening" 功能(7招安全加固): 1. 创建 sudo 用户,禁用 root 密码登录 2. 修改 SSH 端口(支持 Ubuntu 不同版本) 3. Fail2ban 自动安装配置 4. SSH 密钥登录支持 5. SSH 登录通知(可选) 6. UFW 防火墙配置 7. Docker 安全提醒 Author: github.com/wlzh Version: 1.0.0
インストールする前に、エージェントに与えられる指示の中身を確認できます。
版本: 1.0.7 | 作者: github.com/wlzh | 参考: https://x.com/gxjdian/status/2033751314208059507
本 Skill 用于自动化 VPS 安全加固流程,基于「7招安全加固」最佳实践,通过 SSH 远程执行一系列安全配置命令。
在执行任何操作前,务必确保:
如果 VPS 不支持 root 密码登录,必须先通过 VNC/控制台 开启!
很多云服务商(AWS、阿里云等)默认禁用 root 密码登录,只允许密钥登录。在运行此 Skill 前,需要先开启:
通过 VPS 平台控制台(VNC)执行以下命令:
# 1. 开启密码认证
sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config
# 2. 开启 root 登录
sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config
# 3. 重启 SSH 服务
systemctl restart ssh
# 4. 设置 root 密码(会提示输入两次)
passwd root
执行完成后,才能使用此 Skill 进行 SSH 登录和后续配置。
运行此 Skill 时,需要用户提供:
| 参数 | 说明 | 示例 |
|---|---|---|
VPS_IP | VPS 的 IP 地址 | 192.168.1.100 |
ROOT_PASSWORD | root 密码 | MyP@ssw0rd |
NEW_USER | 新建的 sudo 用户名 | admin |
NEW_USER_PASSWORD | 新用户密码 | UserP@ss123 |
SSH_PORT | 新的 SSH 端口 | 22222 |
# 检查本地是否安装 sshpass(用于自动输入密码)
which sshpass || echo "需要安装 sshpass: brew install sshpass 或 apt install sshpass"
# 检测 Ubuntu 版本
lsb_release -a
# 更新系统
apt update && apt upgrade -y
# 检查必要工具
which ufw || apt install ufw -y
which sudo || apt install sudo -y
which fail2ban-client || apt install fail2ban -y
Ubuntu 版本与 SSH 配置方式:
| Ubuntu 版本 | SSH 配置方式 |
|---|---|
| 22.10, 23.04, 23.10 | socket 激活,需配置 /etc/systemd/system/ssh.socket.d/ |
| 24.04+ | 直接修改 /etc/ssh/sshd_config 或 sshd_config.d/ |
# 创建用户
useradd -m -G sudo -s /bin/bash ${NEW_USER}
# 设置密码
echo "${NEW_USER}:${NEW_USER_PASSWORD}" | chpasswd
# 验证用户创建成功
id ${NEW_USER}
方式A:Ubuntu 24.04+ / 传统方式
创建专用配置文件 /etc/ssh/sshd_config.d/99-hardening.conf:
# VPS Security Hardening - generated by vps-security-hardening skill
# Author: github.com/wlzh
# Version: 1.0.0
Port ${SSH_PORT}
PermitRootLogin prohibit-password
PasswordAuthentication yes
PubkeyAuthentication yes
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
方式B:Ubuntu 22.10/23.04/23.10(socket 激活)
# 创建 socket 覆盖配置
mkdir -p /etc/systemd/system/ssh.socket.d
cat > /etc/systemd/system/ssh.socket.d/listen.conf << EOF
[Socket]
ListenStream=
ListenStream=${SSH_PORT}
EOF
# 禁用 socket 激活,改用传统服务
systemctl disable --now ssh.socket
systemctl enable --now ssh.service
配置说明:
Port: 自定义 SSH 端口,避开默认 22PermitRootLogin prohibit-password: root 仅允许密钥登录(比 without-password 更严格)PasswordAuthentication yes: 普通用户允许密码登录(配置密钥后可改为 no)PubkeyAuthentication yes: 启用密钥认证MaxAuthTries 3: 最多尝试 3 次认证ClientAliveInterval/CountMax: 5 分钟无活动断开# 安装 fail2ban
apt install fail2ban -y
# 创建自定义配置
cat > /etc/fail2ban/jail.local << 'EOF'
[sshd]
ignoreip = 127.0.0.1/8
enabled = true
filter = sshd
port = ${SSH_PORT}
maxretry = 5
findtime = 300
bantime = 600
logpath = /var/log/auth.log
action = %(action_)s
EOF
# 启动服务
systemctl enable fail2ban
systemctl start fail2ban
配置说明:
ignoreip: 白名单 IP,不会被封maxretry: 允许失败 5 次findtime: 5 分钟内bantime: 封禁 10 分钟(设为 -1 永久封禁,但不推荐)# 检查配置语法
sshd -t
# 验证配置生效(重启前)
sshd -T | grep -iE "^(port|permitrootlogin|passwordauthentication|pubkeyauthentication) "
# 预期输出:
# port ${SSH_PORT}
# permitrootlogin prohibit-password
# passwordauthentication yes
# pubkeyauthentication yes
# 设置默认策略
ufw default deny incoming
ufw default allow outgoing
# 允许新 SSH 端口(必须在启用前配置!)
ufw allow ${SSH_PORT}/tcp comment 'SSH custom port'
# 如果有网站服务
# ufw allow 80/tcp
# ufw allow 443/tcp
# 启用防火墙
ufw --force enable
# 删除默认 22 端口(确认新端口可用后)
ufw delete allow 22/tcp 2>/dev/null || ufw status numbered
# 查看状态
ufw status verbose
# 重载配置
systemctl daemon-reload
systemctl restart ssh.service
systemctl restart fail2ban
# 验证服务状态
systemctl is-active ssh.service
systemctl is-active fail2ban
如需配置登录通知(企业微信/Telegram/钉钉):
# 编辑 PAM 配置
vim /etc/pam.d/sshd
# 添加:session optional pam_exec.so /usr/local/bin/notify_ssh_login.sh
# 创建通知脚本
vim /usr/local/bin/notify_ssh_login.sh
chmod +x /usr/local/bin/notify_ssh_login.sh
企业微信通知脚本示例:
#!/bin/bash
if [ "$PAM_TYPE" != "open_session" ]; then
exit 0
fi
ip=$PAM_RHOST
date=$(date +"%e %b %Y, %a %r")
name=$PAM_USER
webhook_url="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你的webhook密钥"
curl -s -X POST "$webhook_url" \
-H "Content-Type: application/json" \
-d "{
\"msgtype\": \"markdown\",
\"markdown\": {
\"content\": \"**SSH登录提醒**\n> 登录用户: $name\n> 客户端IP: $ip\n> 登录时间: $date\"
}
}"
执行完成后,生成包含以下内容的报告:
════════════════════════════════════════════════════════════
VPS 安全加固报告
════════════════════════════════════════════════════════════
执行时间: $(date)
VPS IP: ${VPS_IP}
系统版本: $(lsb_release -ds)
[✓] 系统更新: apt update && apt upgrade 完成
[✓] 新用户: ${NEW_USER} 已创建并加入 sudo 组
[✓] SSH 端口: ${SSH_PORT}
[✓] Root 登录: 仅允许密钥登录 (prohibit-password)
[✓] 密码认证: 已启用(普通用户)
[✓] Fail2ban: 已安装并启动
[✓] UFW 防火墙: 已启用
防火墙状态:
$(ufw status verbose)
Fail2ban 状态:
$(fail2ban-client status sshd)
SSH 配置验证:
$(sshd -T | grep -iE "^(port|permitrootlogin|passwordauthentication) ")
════════════════════════════════════════════════════════════
登录信息
════════════════════════════════════════════════════════════
新登录命令: ssh -p ${SSH_PORT} ${NEW_USER}@${VPS_IP}
⚠️ 重要提醒:
1. 请确保 VPS 平台防火墙已开放端口 ${SSH_PORT}
2. 建议配置 SSH 密钥登录后禁用密码认证
3. 保存好新用户密码: ${NEW_USER_PASSWORD}
4. 如使用 Docker,注意配置端口映射安全(见第七招)
════════════════════════════════════════════════════════════
完整的自动化脚本见 scripts/harden-vps.sh,支持以下参数:
./scripts/harden-vps.sh \
--ip <VPS_IP> \
--root-pass <ROOT_PASSWORD> \
--user <NEW_USER> \
--user-pass <NEW_USER_PASSWORD> \
--port <SSH_PORT>
如果 VPS 上运行 Docker,需要注意:
内部服务不暴露端口 - 数据库、Redis 等只在容器内部通信
services:
redis:
image: redis:alpine
# 不需要 ports 配置!
需要反代的服务只监听 127.0.0.1
services:
app:
ports:
- "127.0.0.1:3000:3000" # 只在本地监听
需要公网访问的服务才暴露端口
services:
web:
ports:
- "80:80"
- "443:443"
原因:Docker 会直接修改 iptables 规则,绕过 UFW!
A: 手动安装:
brew install hudochenkov/sshpass/sshpasssudo apt install sshpass -ysudo yum install sshpass -yA: 需要通过 VPS 控制台(VNC/控制台)执行:
sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config
sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config
systemctl restart ssh
passwd root # 设置 root 密码
A: 通过 VPS 平台控制台(VNC)登录,执行:
ufw disable
# 或添加规则
ufw allow 22/tcp
ufw allow ${SSH_PORT}/tcp
# 本地生成密钥
ssh-keygen -t ed25519 -C "your@email.com"
# 复制公钥到服务器
ssh-copy-id -p ${SSH_PORT} ${NEW_USER}@${VPS_IP}
# 测试密钥登录成功后,禁用密码认证
# 修改 /etc/ssh/sshd_config.d/99-hardening.conf
PasswordAuthentication no
systemctl restart ssh
apt update && apt upgrade)まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
音频关键字过滤工具 - 根据关键字配置自动识别并删除音频中的指定内容
日本語の概要は準備中です。原文の説明を表示しています。
🔥 用 Gordon Ramsay 风格毒舌吐槽代码质量,生成搞笑且实用的代码审查报告
日本語の概要は準備中です。原文の説明を表示しています。
通用图片生成 Skill,支持多种 AI 模型(ModelScope、Gemini、RunningHub 等),可被其他 Skills 调用
日本語の概要は準備中です。原文の説明を表示しています。
Automate the full QuarkPanTool → mswnlz GitHub content publishing pipeline. Supports Quark / Baidu / Aliyun drives with multi-account rotation. Use when the user provides share URLs and wants: (1) auto-detect drive type and route to correct handler, (2) save resources with automatic account rotation, (3) clean junk files from shared folders, (4) copy promotional files into each folder, (5) generate permanent encrypted share links, (6) auto-classify items into local content dirs (book/movies/AIknowledge/tools/etc.), (7) append/update YYYYMM.md and README index, (8) local git commit, (9) send unified Telegram notifications to multiple groups, (10) rebuild site and deploy to Cloudflare Pages.
日本語の概要は準備中です。原文の説明を表示しています。
文本转语音工具 - 默认 MiniMax TTS,支持切换 Edge TTS 和 Kokoro TTS (v1.1-zh)
日本語の概要は準備中です。原文の説明を表示しています。
视频变声处理工具 - 从视频提取音频,调用 voice-changer skill 变声后合并回视频。用户要求视频变声、给视频换声音、视频音色转换或处理视频音频时使用。
日本語の概要は準備中です。原文の説明を表示しています。