最近逛论坛,看到不少小鸡因为弱口令或默认端口被暴力破解,甚至被植入挖矿木马。
我自己手里也屯了一堆小鸡,之前为了省事,很多机器都是默认密码或者固定的简单密码登录。 现在环境越来越恶劣,还是觉得统一改成 SSH 密钥登录才稳妥。
但问题也很现实: 每次新开机器,都要手动改端口、禁密码、导公钥、装 BBR…… 十几台机器下来,真的重复造轮子到头大。
刚好最近 AI 发展这么猛(都在说 GPT-5.2 了,虽然我这次主力用的是 Gemini 😆), 干脆趁这波红利,GPT-5.2 + Gemini 一起搓了一个 “全自动化、防手残” 的初始化脚本。
经过几轮代码审计和逻辑加固,终于做出了 v1.0.0 正式版。 我自己已经在 Debian 12 和 Alpine Linux 上实测了一圈,非常稳,现开源分享给大家。
🚀 项目地址
GitHub: https://github.com/247like/linux-ssh-init-sh
✨ 这个脚本能干啥?
主打一个 “懒人专用,安全兜底”。
- 全平台兼容: Debian / Ubuntu、CentOS / Alma / Rocky,甚至极简的 Alpine Linux, 全部使用 POSIX sh 编写,不依赖 Bash。
- 密钥一把梭:
- 支持通过 GitHub 用户名自动拉取公钥(最推荐)
- 支持 URL 下载或直接粘贴公钥文本
- 防失联机制: 如果公钥获取失败,脚本绝不会禁用密码登录,防止把自己锁在门外。
- 安全加固:
- 一键修改 SSH 端口(支持随机高位端口,自动检测占用)
- 自动配置防火墙(UFW / Firewalld),改端口不掉线
- 创建普通用户(sudo 免密),可选禁用 Root 登录
- 系统优化:开启 TCP BBR、更新系统软件
- Debian 12 友好: 专门处理 Include 配置覆盖问题,确保加固配置真正生效。
🛠️ 食用方法
⚠ 必须以 Root 身份运行
方式一:交互式(小白推荐)
跟着提示选 1、2、3 即可,支持中英双语。
curl -fsSL https://raw.githubusercontent.com/247like/linux-ssh-init-sh/main/init.sh -o init.sh \ && chmod +x init.sh \ && ./init.sh 方式二:一条命令全自动(老鸟推荐)
适合新开机器后直接粘贴进终端。
- 自动创建用户
247like - 自动从 GitHub 拉取
247like的公钥 - 自动开启 BBR(仅基础参数)
- 自动更新系统并跳过确认
curl -fsSL https://raw.githubusercontent.com/247like/linux-ssh-init-sh/main/init.sh | sh -s -- \ --user=247like \ --port=22 \ --key-gh=247like \ --bbr \ --update \ --yes 注:请将上面的 247like 替换为你自己的用户名。
📝 小结
代码虽然是联合 AI 写出来的,但所有关键逻辑我都做了人工审计, 尤其是 防失联 这块,加入了大量兜底判断(端口检测、公钥校验等)。
个人体验下来:GPT 有时会丢改过的代码,Gemini 相对稳定一些, 两个模型互相“审计”反而效果不错。
目前我自己用得非常爽,新开一台鸡,10 秒钟初始化完毕, 从此告别密码登录,再也不怕暴力破解。