使用宝塔面板配置SSH密钥登录可提升服务器安全性,避免密码暴力破解,步骤如下:首先在本地电脑(如Windows用PuTTYgen、Linux/macOS用ssh-keygen)生成密钥对(公钥和私钥),将公钥内容复制;登录宝塔面板,进入「安全」选项卡启用SSH密钥登录并设置禁止密码登录(可选),再将公钥粘贴到面板提供的密钥管理区域;随后通过宝塔面板的「文件」功能,将公钥文件(通常为authorized_keys)上传至服务器用户目录下的~/.ssh/目录(权限设为600),并确保.ssh目录权限为700;最后重启SSH服务使配置生效,安全优化建议:禁用root直接登录、修改默认SSH端口(如22改为高位端口)、限制登录IP(仅允许办公IP访问),并定期更新密钥,配置完成后,通过私钥连接服务器即可完成无密码安全登录。
在服务器管理中,SSH(Secure Shell)是最常用的远程连接方式,传统的密码登录虽然方便,但存在被暴力破解的风险,相比之下,SSH密钥登录更加安全,因为它基于公钥和私钥的加密机制,避免了密码泄露的隐患。
宝塔面板(BT Panel) 是一款流行的服务器管理工具,它简化了Linux服务器的配置过程,包括SSH密钥登录的设置,本文将详细介绍如何在宝塔面板中配置SSH密钥登录,并提供安全优化建议,帮助您提升服务器的安全性。
SSH密钥登录的基本原理
SSH密钥登录采用非对称加密技术,涉及两把密钥:
- 私钥(Private Key):存储在本地计算机,必须严格保密,用于登录服务器。
- 公钥(Public Key):上传到服务器,用于验证客户端的身份。
当您尝试通过SSH登录服务器时,服务器会检查您的私钥是否与存储的公钥匹配,如果匹配,则允许登录;否则拒绝访问。
相比密码登录,SSH密钥登录的优势:
- 更安全:密钥比复杂密码更难破解。
- 免密码登录:无需每次输入密码,提高效率。
- 防止暴力破解:即使攻击者知道用户名,没有私钥也无法登录。
在宝塔面板中配置SSH密钥登录的步骤
生成SSH密钥对(本地操作)
在配置服务器之前,您需要在本地计算机(Windows/macOS/Linux)生成一对SSH密钥。
(1)Windows 用户(使用 PuTTYgen 或 Git Bash)
-
方法1:使用 PuTTYgen(推荐)
- 下载并安装 PuTTY(包含 PuTTYgen)。
- 打开 PuTTYgen,选择 RSA(或 Ed25519,更安全),点击 Generate。
- 移动鼠标以生成随机数据,等待密钥生成。
- 设置 Key passphrase(可选,增加安全性)。
- 点击 Save private key 保存私钥(如
id_rsa.ppk)。 - 复制 Public key(以
ssh-rsa AAAAB3...开头的内容),稍后上传到服务器。
-
方法2:使用 Git Bash(OpenSSH)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
按提示操作,默认保存在
~/.ssh/id_rsa(私钥)和~/.ssh/id_rsa.pub(公钥)。
(2)macOS/Linux 用户(终端操作)
ssh-keygen -t ed25519 -C "your_email@example.com" # 推荐更安全的 Ed25519 # 或 ssh-keygen -t rsa -b 4096 -C "your_email@example.com" # 传统 RSA
- 按提示输入保存路径(默认
~/.ssh/id_ed25519或~/.ssh/id_rsa)。 - 可设置 passphrase(可选,增加安全性)。
- 生成后,公钥位于
~/.ssh/id_ed25519.pub或~/.ssh/id_rsa.pub。
查看公钥:
cat ~/.ssh/id_ed25519.pub # 或 cat ~/.ssh/id_rsa.pub
在宝塔面板中添加SSH公钥
- 登录宝塔面板(通常通过
http://服务器IP:8888)。 - 进入 “安全” 或 “SSH管理”(不同版本可能位置不同)。
- 找到 “SSH密钥” 或 “密钥管理” 选项。
- 点击 “添加密钥”:
- 密钥名称:自定义(如
my_key)。 - :粘贴之前复制的公钥(
ssh-rsa AAAAB3...或ssh-ed25519 AAAAC3...)。
- 密钥名称:自定义(如
- 保存后,宝塔面板会自动将公钥写入
/root/.ssh/authorized_keys(或对应用户的.ssh/authorized_keys)。
配置SSH服务以允许密钥登录(可选调整)
- 在宝塔面板中,进入 “安全” > “防火墙”,确保 SSH端口(默认22) 开放。
- 进入 “软件商店” > “SSH服务”(或直接修改
/etc/ssh/sshd_config)。 - 修改SSH配置(可选):
- 登录宝塔面板的 “文件” 功能,编辑
/etc/ssh/sshd_config:vi /etc/ssh/sshd_config
- 确保以下配置:
PubkeyAuthentication yes # 启用公钥认证 PasswordAuthentication no # 禁用密码登录(可选,提高安全性) AuthorizedKeysFile .ssh/authorized_keys # 公钥存储路径
- 保存后,重启SSH服务:
systemctl restart sshd
(在宝塔面板中,可以点击 “重启SSH” 按钮)
- 登录宝塔面板的 “文件” 功能,编辑
使用密钥登录服务器
(1)Windows(PuTTY)
- 打开 PuTTY,输入服务器IP和SSH端口(默认22)。
- 在 左侧导航栏 选择 Connection > SSH > Auth。
- 点击 Browse,选择之前保存的 私钥(.ppk 文件)。
- 返回 Session,点击 Open,输入用户名(如
root)即可登录。
(2)macOS/Linux(终端)
ssh root@服务器IP -p 22
- 如果私钥不在默认路径(
~/.ssh/id_rsa),使用:ssh -i ~/.ssh/your_private_key root@服务器IP
安全优化建议
-
禁用密码登录(推荐)
- 在
/etc/ssh/sshd_config中设置:PasswordAuthentication no
- 这样即使攻击者知道用户名,没有私钥也无法登录。
- 在
-
更改默认SSH端口(可选)
- 修改
/etc/ssh/sshd_config:Port 2222 # 改为非标准端口
- 降低被扫描攻击的概率。
- 修改
-
使用强密钥(Ed25519 优于 RSA)
- 生成更安全的密钥:
ssh-keygen -t ed25519
- 生成更安全的密钥:
-
限制SSH访问IP(防火墙)
- 在宝塔面板的 “安全” > “防火墙” 中,只允许特定IP访问SSH端口。
-
定期更新密钥
如果私钥泄露,立即在服务器上删除对应的公钥,并生成新密钥。
通过宝塔面板配置SSH密钥登录,可以大幅提升服务器的安全性,避免密码暴力破解的风险,本文详细介绍了:
- 生成SSH密钥对(本地操作)。
- 在宝塔面板中添加公钥。
- 调整SSH配置(可选禁用密码登录)。
- 使用密钥登录服务器(Windows/macOS/Linux)。
- 安全优化建议(禁用密码、改端口、限制IP等)。
按照这些步骤操作后,您的服务器将更加安全,同时享受更便捷的免密登录体验,如果您在配置过程中遇到问题,可以检查日志(/var/log/auth.log)或宝塔面板的SSH日志进行排查。


还没有评论,来说两句吧...