宝塔SSH密钥登录与密码禁用:教你用密钥登录宝塔并关掉密码
很多站长刚买好云服务器、装好宝塔面板后,第一件事是搭建网站,却往往忽略了最底层的安全隐患。如果你去翻一眼系统的安全日志,就会发现每天有成千上万个恶意IP在不知疲倦地扫描你的22端口,尝试暴力破解。想要彻底睡个安稳觉,最直接、最管用的手段就是配置宝塔SSH密钥登录与密码禁用。只要把这道防线筑牢,直接从源头掐死全网99%的自动化爆破脚本。
今天我就结合自己平时运维几十台服务器的实操经验,用大白话带大家走一遍完整流程,顺便把几个新手最容易踩的“翻车大坑”填上。
为什么要扔掉密码,换成密钥?
说白了,传统的账号+密码登录方式有两个致命弱点:
- 防不住撞库和穷举:哪怕你设了16位包含大小写特殊符号的密码,只要端口开着,攻击者的脚本就会持续消耗你的系统资源去猜。
- 容易泄漏:不同平台如果用了相似的密码,一旦某处泄露,服务器就会被顺藤摸瓜端掉。
而SSH密钥登录走的是“非对称加密”逻辑。服务器上放一把“锁”(公钥),你的电脑里握着对应的“钥匙”(私钥)。连接时两者对暗号,暗号对得上秒进,对不上直接切断连接,根本不给黑客尝试输入密码的机会。
| 对比维度 | 传统账号密码登录 | SSH密钥免密登录 |
|---|---|---|
| 安全性 | 极低(容易被暴力破解扫描) | 极高(数学层面的穷举不可行) |
| 登录体验 | 每次都要敲长串字符,容易输错 | 配合终端软件一键双击秒连 |
| 系统开销 | 频繁被扫会导致CPU和带宽浪费 | 握手失败直接断开,几乎无额外消耗 |
第一步:在宝塔面板生成并绑定密钥
其实宝塔已经把生成密钥的过程做得很傻瓜化了,不用去Linux敲复杂的命令,跟着我点几下就行。
- 打开并登录你的宝塔面板后台,在左侧导航栏点击进入 “安全” 页面。
- 找到 “SSH管理” 这一项(有些老版本在“系统安全”里)。
- 看到“SSH服务”是开启状态后,点击旁边的 “SSH密钥管理” 或者 “添加密钥”。
- 弹出的窗口里,系统会提示你:
- 密钥名称:随便填,比如
my-macbook-key或者home-pc,方便你自己区分是哪台电脑。 - 加密方式:默认
RSA就可以,长度建议选2048或4096位;懂行的也可以选ED25519,性能和安全性更好。
- 密钥名称:随便填,比如
- 点击生成后,宝塔会提示你下载私钥文件(通常是一个
.pem或无后缀文本)。
【血泪警告】: 下载下来的私钥文件是你进入服务器的唯一凭证,赶紧存到安全的地方,别随手扔在桌面等下清理垃圾删了!私钥一旦丢了,后面又禁了密码,你就得去云平台后台跑VNC救砖了。
第二步:拿私钥测试连接(千万别跳过这步!)
很多新手最容易犯的错误就是:刚在宝塔里生成了密钥,转头立马把密码登录给关了。 结果本地客户端根本没配置好,直接把自己锁在门外,欲哭无泪。
记住运维铁律:任何安全策略生效前,必须留好退路,验证成功再关旧通道。
如果你用的是 Xshell / FinalShell / Putty 等工具:
- 新建一个连接,填入服务器IP和你的SSH端口。
- 认证方式不要选“密码”,选择 “Public Key(公钥/密钥)”。
- 用户名依然填
root。 - 找到“用户密钥”选项,点击浏览/导入,把你刚才从宝塔下载的私钥文件导入进去。
- 点击连接。如果没报错直接进入了终端命令行(看到
[root@xxx ~]#),说明密钥部署完全成功!
如果你用的是 Mac 或 Linux 终端:
打开本地终端,先给私钥降权(权限太高SSH客户端会拒接):
chmod 600 ~/Downloads/your_private_key.pem
然后测试连接:
ssh -i ~/Downloads/your_private_key.pem -p 你的SSH端口 root@你的服务器IP
能顺利敲命令进去,才算通关。
第三步:修改配置,彻底禁用密码登录
好了,现在你手里已经拿到了开门的钥匙,接下来就是把以前那个容易被撬的“旧锁芯”(密码登录)给堵死。
方法A:直接在宝塔面板一键关闭(推荐新手)
- 回到宝塔面板的 “安全” 页面。
- 在 SSH 管理区域,找到 “密码登录” 这个开关。
- 直接将其状态拨到 “关闭”(或者有些版本是勾选“只允许密钥登录”)。
- 宝塔会自动帮你重载后台的 SSH 服务,瞬间生效。
方法B:去底层配置文件锁死(老运维更推荐)
有时候宝塔面板偶尔会抽风,为了百分百放心,你可以直接在刚才连上的终端里敲两行命令:
打开 SSH 主配置文件:
vi /etc/ssh/sshd_config
在文件里找到以下两行(如果前面有 # 号记得删掉):
PubkeyAuthentication yes
PasswordAuthentication no
PubkeyAuthentication yes的意思是:允许公钥认证。PasswordAuthentication no的意思是:严禁密码认证。
改完保存退出(Vi里按 Esc,输入 :wq 回车)。
最后,输入命令重启SSH服务生效:
# CentOS 系列执行:
systemctl restart sshd
# Ubuntu / Debian 系列执行:
systemctl restart ssh
验证成果与常见卡点答疑
搞定之后,我们来做个“自虐测试”:随便找台没配过密钥的设备,或者在客户端里强行用密码方式连接服务器。如果终端直接弹出一句冷冰冰的 Permission denied (publickey),连输密码的输入框都不给你弹,恭喜你,你的服务器防御水平已经直接超越了绝大多数同行。
最后整理两个大家最常问的问题:
Q1:我如果换了新电脑,怎么连上去? A:只要你手头有那份私钥,把私钥拷到新电脑上导入就能连。如果你私钥在旧电脑上不想动,可以先登录宝塔后台,在“SSH密钥管理”里再生成一套新电脑的密钥导入进去,宝塔支持同时存在多个公钥。
Q2:密码禁用了,万一私钥不小心删了怎么办?
A:别慌,虽然公网SSH进不去了,但你还可以登录阿里云、腾讯云等服务商的控制台,打开网页版的 VNC / 远程连接 终端。那个控制台是绕过网络SSH直接接管服务器显卡的,进去之后重新编辑 /etc/ssh/sshd_config,把 PasswordAuthentication 改回 yes,重启服务就能重新用密码登录救急。
花上5分钟把这套流程走完,你会发现服务器被扫爆的日志瞬间清净了。做网站搞技术,先把底层安全弄踏实,后期的SEO优化和流量承接才能跑得安心。
相关文章
- WordPress后门木马排查与彻底清除:WP后门木马排查与彻底清剿
- Cloudflare WAF防CC攻击规则实战配置:CF抗CC实战:站长保命指南
- Nginx安全响应头配置与加固:Nginx安全头加固与文案实战
- Linux服务器SSH防暴力破解与密钥登录:老站长聊SSH密钥与防爆破
- Fail2ban自动化封禁恶意扫描IP实操:老站长手把手教Fail2ban防扫描
- 外贸独立站数据库异地增量冷备份方案:外贸站异地冷备份救命指南
- SQL注入攻击特征分析与防御拦截:独立站SQL注入防御与防坑手记
- Linux网站根目录文件权限防提权加固:别乱给777:网站目录加固实战
- 外贸独立站DDoS大流量攻击应急清洗:外贸站抗DDoS防封救砖实录
- UFW防火墙严格出入站端口限制配置:独立站老兵聊UFW严格端口配置

