在CentOS中设置SSH密钥认证登录,可以增强系统的安全性,避免密码被破解的风险,以下是详细的步骤:
1、生成SSH密钥对
我们需要在本地计算机上生成一对SSH密钥,在终端中输入以下命令:
sshkeygen t rsa这个命令会提示你输入一个保存密钥的路径和文件名,或者直接使用默认的文件路径和文件名,它会要求你输入一个passphrase,这是可选的,如果你不想每次使用密钥时都需要输入密码,可以直接按回车跳过这一步。
2、将公钥复制到远程服务器
接下来,我们需要将生成的公钥复制到远程服务器,在终端中输入以下命令:
sshcopyid i ~/.ssh/id_rsa.pub 用户名@远程服务器IP地址这个命令会将你的公钥复制到远程服务器的~/.ssh/authorized_keys文件中,这样,当你使用SSH连接到远程服务器时,服务器就可以通过这个公钥来验证你的身份。
3、修改SSH配置文件
在远程服务器上,我们需要修改SSH的配置文件,以启用密钥认证,在终端中输入以下命令:
sudo vi /etc/ssh/sshd_config在这个文件中,找到PubkeyAuthentication这一行,确保它的值是yes,如果它的值是no,那么你需要将它改为yes,找到PasswordAuthentication这一行,确保它的值是no,如果它的值是yes,那么你需要将它改为no,保存并退出文件。
4、重启SSH服务
修改完配置文件后,我们需要重启SSH服务,以使更改生效,在终端中输入以下命令:
sudo service sshd restart5、测试SSH连接
我们可以测试一下SSH连接,看看是否可以通过密钥认证成功登录,在终端中输入以下命令:
ssh 用户名@远程服务器IP地址 p 22如果你已经正确地设置了SSH密钥认证,你应该能够不需要输入密码就成功登录到远程服务器。
FAQs
Q1: 我忘记了生成SSH密钥时输入的密码,怎么办?
A1: 如果你忘记了生成SSH密钥时输入的密码,那么你将无法使用这个密钥进行认证,你需要重新生成一个新的SSH密钥对,在生成新的密钥对时,你可以选择一个密码,然后在以后的使用中记住这个密码。
Q2: 我可以将SSH密钥认证和密码认证同时使用吗?
A2: 不可以,SSH的配置文件中的PasswordAuthentication选项只能设置为yes或no,不能同时设置为两者,如果你将PasswordAuthentication设置为no,那么只有通过密钥认证的用户才能登录到服务器,如果你将PasswordAuthentication设置为yes,那么所有用户都可以使用密码登录到服务器,为了提高安全性,我们通常建议只使用密钥认证。