HCRM博客

CentOS私钥登录配置指南

在当今的服务器管理中,确保远程访问的安全性至关重要,CentOS作为一种流行的Linux发行版,广泛用于生产环境,传统的SSH密码登录虽然方便,但容易受到暴力破解攻击,采用私钥登录方式,可以大幅提升安全性,减少潜在风险,本文将详细介绍在CentOS系统上配置SSH私钥登录的步骤,帮助管理员实现更可靠的访问控制。

CentOS私钥登录配置指南-图1

为什么选择私钥登录?

私钥登录基于非对称加密原理,使用一对密钥:私钥和公钥,私钥保存在客户端,公钥上传到服务器,登录时,服务器通过公钥验证私钥,无需传输密码,这种方式避免了密码泄露的风险,尤其适合多用户环境或自动化脚本,与密码登录相比,私钥登录更难被破解,因为私钥通常较长且复杂,攻击者难以猜测或拦截。

准备工作

在开始配置前,请确保您拥有以下条件:

  • 一台运行CentOS的服务器(建议版本7或以上)。
  • root或具有sudo权限的用户账户。
  • 本地计算机(如Windows、macOS或Linux)已安装SSH客户端。

如果服务器尚未安装SSH服务,可以通过以下命令安装:

sudo yum install openssh-server openssh-clients -y
sudo systemctl start sshd
sudo systemctl enable sshd

生成SSH密钥对

在本地计算机上生成SSH密钥对,打开终端或命令提示符,执行以下命令:

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

这里,-t rsa指定密钥类型为RSA,-b 4096设置密钥长度为4096位以提高安全性,-C添加注释(通常用邮箱标识),系统会提示您选择保存路径和设置密码短语,建议使用默认路径(如~/.ssh/id_rsa),并为私钥设置一个强密码短语,以增加额外保护。

生成完成后,您会在~/.ssh/目录下看到两个文件:id_rsa(私钥)和id_rsa.pub(公钥),私钥必须严格保密,切勿共享;公钥则可以安全地传输到服务器。

上传公钥到服务器

将公钥上传到CentOS服务器,有多种方法可以实现,最常用的是使用ssh-copy-id命令,在本地终端中运行:

ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip

替换username为您的服务器用户名,server_ip为服务器IP地址,系统会提示输入用户密码,完成后,公钥会自动添加到服务器的~/.ssh/authorized_keys文件中。

CentOS私钥登录配置指南-图2

如果ssh-copy-id不可用,可以手动操作,将公钥内容复制到剪贴板:

cat ~/.ssh/id_rsa.pub

通过SSH登录服务器:

ssh username@server_ip

在服务器上,创建或编辑~/.ssh/authorized_keys文件:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "粘贴的公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

确保文件权限正确,避免其他用户访问。

配置SSH服务器

需要修改服务器的SSH配置以启用私钥登录,使用文本编辑器打开SSH配置文件:

sudo vi /etc/ssh/sshd_config

找到以下行,并确保设置如下:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no  # 禁用密码登录,建议在测试后启用
  • PubkeyAuthentication yes允许使用公钥认证。
  • AuthorizedKeysFile指定公钥存储路径。
  • PasswordAuthentication no禁用密码登录,这可以防止暴力攻击,但请先确认私钥登录正常。

检查其他相关设置:

PermitRootLogin without-password  # 仅允许root用户使用密钥登录
ChallengeResponseAuthentication no  # 禁用其他认证方式
UsePAM no  # 如果不需要PAM,可以禁用

保存文件后,重启SSH服务使更改生效:

CentOS私钥登录配置指南-图3

sudo systemctl restart sshd

测试私钥登录

在禁用密码登录前,务必测试私钥登录是否正常工作,从本地计算机尝试连接:

ssh -i ~/.ssh/id_rsa username@server_ip

如果系统提示输入私钥密码短语(如果设置了),并成功登录,说明配置正确,如果失败,检查以下常见问题:

  • 公钥是否正确添加到authorized_keys文件?
  • 文件权限是否正确(.ssh目录应为700,authorized_keys为600)?
  • 服务器防火墙是否允许SSH连接(默认端口22)?

测试成功后,可以重新编辑/etc/ssh/sshd_config,将PasswordAuthentication设置为no,并再次重启SSH服务。

管理多个密钥或用户

如果您管理多台服务器或多个用户,可以扩展此配置,为不同服务器使用不同密钥对,或在authorized_keys文件中添加多个公钥,考虑使用SSH代理(如ssh-agent)来管理私钥密码短语,避免每次登录都输入。

对于团队环境,建议集中管理公钥,例如通过版本控制工具或配置管理系统,确保密钥更新及时且安全。

安全最佳实践

私钥登录虽安全,但仍需注意以下几点:

  • 定期轮换密钥:每隔几个月生成新密钥对,替换旧公钥。
  • 备份私钥:将私钥存储在加密的离线介质中,防止丢失。
  • 监控登录日志:使用journalctl -u sshd/var/log/secure检查异常访问。
  • 结合其他安全措施:如启用防火墙、使用Fail2ban阻止暴力尝试,或配置双因素认证。

从我的经验来看,私钥登录不仅是技术升级,更是管理思维的转变,它迫使管理员更注重密钥保管和权限控制,从而养成良好安全习惯,在云时代,忽视这一点可能导致严重数据泄露,我强烈建议将私钥登录作为服务器部署的标准流程,并结合自动化工具来简化维护,如果您在操作中遇到问题,多查阅官方文档或社区讨论,往往能找到可靠解决方案,安全是一个持续过程,从小步骤开始,就能积累显著成效。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/49099.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~