跨境独立站宝塔面板服务器SSH密钥登录禁用密码

宝塔面板服务器SSH密钥登录禁用密码完整步骤

对于运营跨境独立站的站长来说,服务器安全是重中之重。
默认的密码登录方式容易被暴力破解,换成SSH密钥登录后,只有持有对应私钥的电脑才能连上服务器。
本文面向零基础用户,全程使用命令行和宝塔面板文件管理,让你一步步完成密钥配置并彻底禁用密码登录。

准备工具与环境

操作前请确认以下条件已满足:

  • 你已拥有一台运行Linux(如CentOS 7/8、Ubuntu 20.04/22.04)的服务器,并安装了宝塔面板。
  • 你能通过密码或宝塔面板的SSH终端登录服务器(建议先在宝塔后台开一个SSH会话)。
  • 本地电脑准备了终端软件:Windows用PowerShell或PuTTY,macOS/Linux直接用系统终端。
  • 如果没有现成密钥,本文会教你生成一对新的。

第一步:在本地生成SSH密钥对

打开本地终端(Windows建议用PowerShell),执行以下命令:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • -t rsa 指定密钥类型为RSA;-b 4096 设置长度为4096位,更安全。
  • -C "your_email" 只是添加一个注释,方便区分,可随意填写。
  • 按回车后,系统会询问保存路径(默认 ~/.ssh/id_rsa)和密码短语(passphrase),建议直接按回车跳过短语以便自动化登录,但也可设置二级保护。

命令执行完后,在 ~/.ssh/ 目录下会生成 id_rsa(私钥)和 id_rsa.pub(公钥)。
私钥必须妥善保管,绝不能泄露给任何人。

第二步:将公钥上传到宝塔面板服务器

方法一:使用宝塔面板的文件管理器(推荐新手)

  1. 登录宝塔面板后台,点击左侧“文件”进入文件管理。
  2. 导航到 /root/.ssh/ 目录(如果没有该目录,可以手动创建)。
  3. 点击“上传”,将本地 id_rsa.pub 文件上传到该目录。
  4. 上传完成后,点击文件名右侧的“编辑”,选中所有内容并复制。如果该目录下已有 authorized_keys 文件,直接打开并将内容粘贴到末尾(另起一行);如果没有,新建一个名为 authorized_keys 的文件,将公钥内容粘贴进去并保存。

方法二:使用 ssh-copy-id 命令(适用于本地有OpenSSH客户端的环境)
在本地终端执行:

ssh-copy-id -i ~/.ssh/id_rsa.pub root@你的服务器IP

输入当前服务器密码即可自动完成公钥追加。

验证权限:无论哪种方法,最终 /root/.ssh/authorized_keys 文件权限必须为 600,目录 /root/.ssh 权限为 700
可在服务器终端执行:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

第三步:修改SSH配置启用密钥并禁用密码

  1. 用命令行或宝塔SSH终端登录服务器。
  2. 备份原SSH配置文件:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
  1. 编辑配置文件:
vim /etc/ssh/sshd_config

(如果不会vim,可用宝塔面板的文件编辑器直接打开 /etc/ssh/sshd_config

  1. 找到或添加以下两行,确保值如下:
PubkeyAuthentication yes
PasswordAuthentication no
  • PubkeyAuthentication 保证密钥登录开启。
  • PasswordAuthentication 设置为 no 即关闭密码登录。

如果 ChallengeResponseAuthentication 也存在,建议也设为 no

  1. 保存并退出。
  2. 重启SSH服务使配置生效:
systemctl restart sshd

重启后,当前已建立的SSH会话不会断开,但新登录将不再接受密码。

第四步:测试密钥登录,验证安全配置

重要提醒:在关闭当前SSH窗口之前,务必另开一个终端会话进行测试,确认密钥登录正常后再关闭旧窗口。

打开一个新终端窗口,执行:

ssh -i ~/.ssh/id_rsa root@你的服务器IP

如果提示输入passphrase(你之前若设置了)就输入,否则直接进入服务器。
成功登录说明密钥配置生效。

如果报错 Permission denied (publickey),请按照以下顺序排查:

  • 检查 /root/.ssh/authorized_keys 的权限和内容格式(每行一个公钥,不能有多余空格)。
  • 确认 PubkeyAuthenticationPasswordAuthentication 的值正确,且没有被其他 Match 段覆盖。
  • 检查服务器防火墙是否开放22端口(宝塔安全组也要放行)。
  • 查看SSH日志:journalctl -u sshd -n 50tail -f /var/log/secure(CentOS)或 /var/log/auth.log(Ubuntu),定位具体错误。

一旦密钥登录测试通过,就可以安全地关闭所有基于密码的旧会话。
之后任何人想登录你的服务器,都必须持有对应的私钥文件,大大降低了被暴力破解的风险。

常见问题与避坑

Q:禁用密码后我忘记了密钥,还能登录吗?
A:如果私钥丢失且没有其他登录方式,服务器将彻底无法SSH连接。建议先在宝塔面板后台开启“SSH终端”作为备用(但宝塔的SSH仍然使用密码登录,这本身存在风险)。更稳妥的做法是为密钥创建一份加密备份,同时保留一个高强度密码登录的备用方案(如只允许特定IP密码登录)。

Q:我有多台服务器,能否使用同一个公钥?
A:可以,公钥可以复制到任意多台服务器的 authorized_keys。私钥只有一份,注意保管。

Q:修改配置后无法登录了怎么办?
A:如果当前会话还未关闭,立即将 PasswordAuthentication 改回 yes 并重启sshd,再排查原因。如果所有会话都已断开,你可以通过服务器KVM(如果云厂商提供)或救援模式,挂载系统盘后直接修改 /etc/ssh/sshd_config

Q:还需要设置Selinux或防火墙吗?
A:默认Linux发行版Selinux对SSH没有特别限制;防火墙只要放行22端口即可。如果使用非常规端口,需对应调整。

完成以上步骤后,你的跨境独立站服务器已经完成了最基础也最关键的安全加固。
如果后续需要管理多个用户,可以为他们单独生成密钥对并分别添加公钥。
推荐继续学习如何配置Fail2ban和防火墙规则,构建多层防护体系。

分享到:
上一篇
家用住宅主机Linux Cassandra分布式产品数据库
下一篇
外贸站宝塔面板网站跨域请求API接口修复方案
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意