当前位置:首页 > 系统教程 > 正文

Linux安全加固:SSH密钥登录实战指南 (从零开始保护你的服务器)

Linux安全加固:SSH密钥登录实战指南 (从零开始保护你的服务器)

在当今网络环境下,Linux安全是每个运维人员和开发者都必须重视的课题。传统的密码登录方式存在被暴力破解的风险,而采用SSH密钥登录可以极大提升服务器的安全性。本文将手把手教你如何配置公钥认证,并最终禁用密码登录,让你的服务器远离黑客攻击。

Linux安全加固:SSH密钥登录实战指南 (从零开始保护你的服务器) Linux安全 SSH密钥登录 公钥认证 禁用密码登录 第1张

1. 为什么需要SSH密钥登录?

密码登录虽然简单,但存在诸多弱点:弱口令、密码泄露、暴力破解等。而SSH密钥登录基于非对称加密,客户端持有私钥,服务器存储公钥,只有配对的私钥才能登录,几乎无法被暴力破解。这是Linux安全基线配置的重要一环。

2. 生成SSH密钥对

在客户端(你的本地电脑)执行以下命令生成密钥对:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

参数说明:-t rsa指定算法,-b 4096指定长度(更安全),-C添加注释。按提示设置保存路径和密码短语(可选)。生成后默认在~/.ssh/下得到id_rsa(私钥)和id_rsa.pub(公钥)。

3. 将公钥复制到服务器

使用ssh-copy-id命令自动将公钥添加到服务器的~/.ssh/authorized_keys文件中:

ssh-copy-id user@server_ip

如果该命令不可用,也可以手动复制:

cat ~/.ssh/id_rsa.pub | ssh user@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

4. 配置SSH服务端

编辑服务器上的SSH配置文件/etc/ssh/sshd_config(需要root权限):

sudo vim /etc/ssh/sshd_config

确保或修改以下配置:

PubkeyAuthentication yes      # 启用公钥认证PasswordAuthentication no      # 禁用密码登录(关键步骤!)ChallengeResponseAuthentication noPermitRootLogin prohibit-password  # 禁止root使用密码登录(可选但推荐)

保存后重启SSH服务:sudo systemctl restart sshdsudo service ssh restart

⚠️ 注意:禁用密码登录之前,请务必在新的终端窗口中测试SSH密钥登录是否成功,避免把自己锁在外面!

5. 测试密钥登录

保持当前SSH会话不退出,另开终端尝试登录:

ssh user@server_ip

如果配置正确,你将直接登录而无需输入密码(除非你设置了密钥密码短语)。

6. 总结

通过以上步骤,你成功实现了SSH密钥登录禁用密码登录,大大增强了服务器的Linux安全。记住,公钥认证是现代服务器管理的基石,配合其他安全措施(如防火墙、fail2ban等)可以构建更坚固的防线。希望这篇指南能帮助你在Linux安全的道路上迈出坚实的一步。


关键词:Linux安全、SSH密钥登录、公钥认证、禁用密码登录