CentOS 配置私钥登录详解

背景介绍
私钥登录是一种更加安全且便捷的远程登录方式,相较于传统的密码登录,私钥登录可以有效防止密码泄露的风险,本文将详细介绍如何在CentOS系统中配置私钥登录。
准备工作
在配置私钥登录之前,您需要以下准备工作:
- 生成SSH密钥对:在本地机器上生成一对SSH密钥,包括公钥和私钥。
- 上传公钥到服务器:将生成的公钥上传到CentOS服务器的
~/.ssh/authorized_keys文件中。
生成SSH密钥对
在本地机器上,使用以下命令生成SSH密钥对:
ssh-keygen -t rsa -b 4096
执行上述命令后,系统会提示您输入文件保存路径和密码,默认情况下,公钥和私钥会被保存在~/.ssh/目录下,分别为id_rsa.pub和id_rsa。
上传公钥到服务器
将本地生成的公钥文件id_rsa.pub上传到CentOS服务器的~/.ssh/目录下,可以使用以下命令:
ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip
username是您在CentOS服务器上的用户名,server_ip是服务器的IP地址。

配置服务器
在CentOS服务器上,执行以下命令确保SSH服务器的配置正确:
编辑SSH配置文件:
vi /etc/ssh/sshd_config
做以下修改:
- 将
PermitRootLogin设置为no,禁止root用户使用密码登录。 - 将
PasswordAuthentication设置为no,禁止密码登录。 - 将
PubkeyAuthentication设置为yes,允许公钥登录。
- 将
保存并退出编辑器。
重启SSH服务:
systemctl restart sshd
验证私钥登录
在本地机器上,使用以下命令尝试使用私钥登录到CentOS服务器:

ssh -i ~/.ssh/id_rsa username@server_ip
如果一切配置正确,您将成功登录到CentOS服务器。
FAQs
问题1:为什么我的私钥登录不成功?
解答:可能的原因有以下几点:
- 公钥没有正确上传到服务器的
~/.ssh/authorized_keys文件中。 - SSH服务没有正确重启。
- SSH配置文件中的设置错误。
您可以检查上述问题并逐一排除。
问题2:如何查看服务器上的公钥文件内容?
解答:在CentOS服务器上,使用以下命令查看~/.ssh/authorized_keys
cat ~/.ssh/authorized_keys
这将显示所有已配置的公钥。

