news 2026/4/29 6:25:19

服务器如何配置SSH密钥登录提高安全性

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
服务器如何配置SSH密钥登录提高安全性

SSH(Secure Shell)是管理服务器的基础工具,通过加密的方式实现安全的远程登录。传统的用户名和密码登录方式存在一定的安全风险,例如密码被暴力破解的概率较高。而SSH密钥登录是一种更安全的认证方式,通过使用私钥和公钥的配对机制,可以显著提升服务器的安全性。

本文将详细介绍如何配置SSH密钥登录,从密钥生成到配置的完整步骤,帮助用户更好地保护服务器的远程访问安全。

1. 什么是SSH密钥登录?

SSH密钥登录使用一对加密密钥进行认证,由私钥和公钥组成:

  • 私钥:保存在客户端,必须妥善保护,不能泄露。
  • 公钥:上传到服务器,用于验证客户端的身份。

与传统密码登录相比,SSH密钥登录具有以下优势:

  • 免受暴力破解的威胁,因为没有密码可以尝试。
  • 支持更强的加密算法,提供更高的安全性。
  • 可以结合密码短语(passphrase)进一步保护私钥。

2. 配置SSH密钥登录的操作方法

以下是配置SSH密钥登录的详细步骤:

2.1 生成SSH密钥对

在客户端生成一对SSH密钥(私钥和公钥)。以下是生成密钥的具体命令:

# 生成SSH密钥对 ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

执行以上命令后,系统会提示以下内容:

  • 保存位置:默认保存到~/.ssh/id_rsa,也可以指定其他路径。
  • 密码短语:设置一个密码短语为私钥增加额外的安全保护(可选)。

成功生成后,会得到以下两个文件:

  • id_rsa:私钥,存储在客户端,需妥善保护。
  • id_rsa.pub:公钥,上传到服务器。

2.2 将公钥上传到服务器

将生成的公钥上传到服务器的授权密钥文件中。可以通过以下方法完成:

方法1:使用ssh-copy-id工具

这是最简单的方法,适合大多数场景:

# 将公钥上传到服务器 ssh-copy-id -i ~/.ssh/id_rsa.pub user@your_server_ip

执行后,公钥会被自动追加到服务器的~/.ssh/authorized_keys文件中。

方法2:手动上传

如果无法使用ssh-copy-id,可以手动将公钥内容复制到服务器:

# 在客户端查看公钥内容 cat ~/.ssh/id_rsa.pub # 在服务器上创建 .ssh 目录(如果不存在) mkdir -p ~/.ssh chmod 700 ~/.ssh # 将公钥内容追加到 authorized_keys 文件 echo "公钥内容" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys

2.3 配置SSH服务

为了确保SSH只允许密钥登录,可以修改SSH配置文件:

# 编辑SSH配置文件 sudo nano /etc/ssh/sshd_config # 确保以下配置项 PubkeyAuthentication yes # 启用公钥认证 PasswordAuthentication no # 禁止密码登录 ChallengeResponseAuthentication no

保存文件后,重启SSH服务以应用配置:

# 重启SSH服务 sudo systemctl restart ssh

2.4 测试密钥登录

配置完成后,使用SSH密钥登录测试连接:

# 使用私钥登录服务器 ssh -i ~/.ssh/id_rsa user@your_server_ip

如果设置了密码短语,系统会提示输入密码短语进行解锁。

3. 提升密钥登录安全性的额外措施

为了进一步提升安全性,可以结合以下措施:

3.1 禁止Root用户登录

编辑SSH配置文件,禁止Root用户通过SSH登录:

# 禁止Root登录 sudo nano /etc/ssh/sshd_config # 修改以下配置 PermitRootLogin no

3.2 限制登录IP地址

通过防火墙或/etc/hosts.allow/etc/hosts.deny文件限制允许访问的IP地址。

# 允许特定IP登录 echo "sshd: 192.168.1.100" >> /etc/hosts.allow # 拒绝其他IP登录 echo "sshd: ALL" >> /etc/hosts.deny

3.3 定期更换密钥

定期更新SSH密钥对可以减少密钥泄露的风险。更新密钥时,请记得将旧密钥从authorized_keys文件中删除。

3.4 使用Fail2Ban防护暴力攻击

安装fail2ban,自动封禁多次失败尝试的IP地址:

# 安装Fail2Ban sudo apt-get install fail2ban # 启动Fail2Ban服务 sudo systemctl enable fail2ban sudo systemctl start fail2ban

总结

通过配置SSH密钥登录,可以显著提高服务器的安全性,避免密码被暴力破解的风险。本文详细介绍了SSH密钥的生成、公钥上传、服务配置和密钥登录测试的完整过程,同时提供了一些额外的安全措施,如禁止Root登录、限制IP访问和使用Fail2Ban防护。

在实际应用中,建议用户结合业务需求,定期审查和优化服务器的安全策略,并妥善保管私钥,避免泄露。通过合理配置和持续维护,SSH密钥登录将为服务器提供强大的安全保障。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 10:33:06

探索AI应用架构师搭建智能数字资产追溯平台的新方法

探索AI应用架构师搭建智能数字资产追溯平台的新方法:以区块链与人工智能融合为例 摘要/引言 问题陈述 在当今数字化时代,数字资产的价值日益凸显,从虚拟货币到数字版权作品,其交易与流转越发频繁。然而,数字资产的易…

作者头像 李华
网站建设 2026/4/26 10:00:07

【计算机毕业设计案例】基于springboot心理测试评估小程序基于springboot+小程序的智慧心理健康自助平台小程序的设计与实现(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/28 3:48:45

基于Springboot的闲一品交易平台

目录技术架构与核心功能数据库设计安全与性能优化扩展性与部署项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作技术架构与核心功能 SpringBoot作为基础框架,提供快速开发与自动化配置能力&…

作者头像 李华
网站建设 2026/4/28 13:19:33

【计算机毕业设计案例】基于springboot的中药科普知识平台的设计与实现、中药材信息、中药方剂、中药书籍中药材信息管理(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/27 9:46:35

【课程设计/毕业设计】基于Springboot框架下中药材科普系统的开发与应用springboot的中药科普知识平台的设计与实现【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/26 8:14:26

Python 多线程与异步爬虫实战:以今日头条为例

一、引言 在 Web 爬虫开发中,单线程请求往往成为性能瓶颈——尤其当目标网站响应较慢或需抓取大量页面时。并发(Concurrency)是提升爬取效率的关键手段。Python 提供了两种主流并发模型:多线程(Threading)…

作者头像 李华