在Linux系统中,CentOS是一个广泛使用的发行版,它提供了强大的功能和稳定的性能,为了确保系统的安全性和访问控制,使用密钥对进行SSH访问是一种常见的安全措施,本文将详细介绍CentOS中密钥对的生成、配置和使用方法。

密钥对的生成
在CentOS系统中,可以使用ssh-keygen命令来生成密钥对,密钥对通常由公钥和私钥两部分组成,公钥用于客户端验证用户身份,私钥则用于客户端验证服务器身份。
1 生成密钥对
ssh-keygen -t rsa -b 2048
上述命令将生成一个2048位的RSA密钥对,在提示输入文件保存路径时,可以按Enter键使用默认路径,或者在提示输入密码时输入一个强密码(可选)。
2 查看密钥对
ls ~/.ssh
上述命令将列出当前用户的主目录下.ssh目录中的所有文件,其中id_rsa是私钥文件,id_rsa.pub是公钥文件。
密钥对的配置
生成密钥对后,需要将其配置到相应的客户端和服务器上。
1 将公钥添加到服务器
将生成的公钥文件id_rsa.pub复制到服务器的~/.ssh/authorized_keys文件中。

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
确保该文件只有所有者可以读写。
chmod 600 ~/.ssh/authorized_keys
2 配置客户端
在客户端,可以使用ssh-agent来管理密钥,避免每次连接时都输入密码。
eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa
使用密钥对进行SSH访问
配置完成后,就可以使用密钥对进行SSH访问了。
1 使用密钥对登录
ssh -i ~/.ssh/id_rsa username@server_ip
上述命令将使用私钥id_rsa登录到服务器。
2 使用密钥对执行命令
ssh -i ~/.ssh/id_rsa username@server_ip 'command'
上述命令将在服务器上执行指定的命令。

常见问题解答(FAQs)
1 为什么我无法使用密钥对登录?
解答: 确保以下条件满足:
- 服务器上的
authorized_keys文件包含正确的公钥。 - 客户端的私钥文件未被损坏。
ssh-agent配置正确,并且私钥已添加到ssh-agent中。
2 如何查看密钥对的指纹?
解答: 使用以下命令查看密钥对的指纹:
ssh-keygen -l -f ~/.ssh/id_rsa
这将显示私钥的指纹信息,可以用于验证密钥的完整性和安全性。

