跨境独立站宝塔面板服务器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 的权限和内容格式(每行一个公钥,不能有多余空格)。
  • 确认 PubkeyAuthentication 和 PasswordAuthentication 的值正确,且没有被其他 Match 段覆盖。
  • 检查服务器防火墙是否开放22端口(宝塔安全组也要放行)。
  • 查看SSH日志:journalctl -u sshd -n 50 或 tail -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
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意