3)复制公钥到Linux
下面我们把刚复制的公钥粘贴到Linux的文件中。下面请跟着阿铭一起来操作,运行如下命令:
# mkdir /root/.ssh //创建/root/.ssh目录,因为这个目录默认是不存在的
# chmod 700 /root/.ssh //更改这个目录的权限
# vi /root/.ssh/authorized_keys//把公钥内容粘贴到文件/root/.ssh/authorized_keys里
关于mkdir和chmod这两个命令,阿铭会分别在下一章节中详细介绍。在vi命令之后直接回车,输入i进入编辑模式,然后单击鼠标右键,它会弹出一个提示框,我们选择下面的选项,意思是点击右键直接粘贴,这是MobaXterm工具非常方便的一个功能。

粘贴后,按Esc键,然后输入:wq并回车,保存并退出该文件。
4)关闭SELinux
关于SELinux,上一章我们也提到过,它是Rocky的一种安全机制,它的存在虽然让Linux系统安全了很多,但也产生了不少麻烦。这里如果不关闭SELinux,使用密钥登录会提示 Server refused our key,从而导致不能成功。需要运行如下命令来关闭SELinux:
# setenforce 0
这只是暂时关闭,下次重启Linux后,SELinux还会开启。若要永久关闭,必须运行如下命令:
# vi /etc/selinux/config
回车后,把光标移动到SELINUX=enforcing这一行,输入i进入编辑模式,修改为SELINUX= disabled。按Esc键,然后输入:wq并回车,最后重启系统。
5)设置通过密钥登录
找到刚才保存的session,右键单击,选择Edit Session。

单击Advanced SSH settings,找到下面的Use private key勾选上,然后选择刚刚保存的私钥文件

6)使用密钥验证登录Linux
点击ok后,双击刚才的session,就可以自动登录了,但是这还不能确定是否使用了密钥,毕竟我们刚才的密码也被保存到了MobaXterm里,也不用输入密码就能登录,你可以通过下面的命令查看日志:
# jounal -u sshd
如果有看到Accepted publickey for root字眼就说明密钥认证成功了。如果先前生成密钥时你有设置密码,则在登录时需要输入密钥密码才可以登录系统。有很多朋友在做密钥认证的时候会失败,只要你注意这几点就一定可以成功:
- /root/.ssh目录权限为700;
- SELinux要关闭;
- /root/.ssh/authorized_keys文件名要写对;
- 文件内容要粘贴对。
假如你还有一台机器要使用密钥验证登录Linux,你学会如何设置了吗?MobaXterm的设置方法是一样的,使用同样的私钥,不需要你再次生成密钥对了。另外,把192.168.195.101上的文件/root/.ssh/authorized_keys复制一份到另一台机器就可以了。请注意,这个文件的名字是固定的。