SSH服务支持一种安全认证机制,即密钥认证。所谓的密钥认证,实际上是使用一对加密字符串,一个称为公钥(publickey), 任何人都可以看到其内容,用于加密;另一个称为密钥(privatekey),只有拥有者才能看到,用于解密。通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难。 ssh的密钥认证就是使用了这一特性。服务器和客户端都各自拥有自己的公钥和密钥。如何使用密钥认证登录linux服务器呢?

1、PuTTY密钥认证

打开putty,先登陆上去。 再打开puttygen ,之前是下载了整个putty.zip ,安装完成之后,包含多个putty相关的程序。现在要用到的是puttygen ,从电脑左下角“开始”那边,打开puttygen, 进入如下窗口,点击“Generate”, 进入下图界面,鼠标需要在窗口上动一动,这样加载会比较快一点,否则会发现进度条一动不动的。 加载完毕,出现如下界面, 公钥一般复制起来就可以,私钥需要保存起来,点击“保存私钥”按钮,出现如下图所示, 私钥需要保存到私密性较强的文件夹里,可以命名为“PuTTY私钥”,然后点击保存。 下面这个窗口先不要关闭,等下会用到公钥,需要复制起来。保险起见的话,也可以保存一下公钥,方法跟保存私钥一样。

现在返回到PuTTY上,首先需要创建一个目录,用 mikdr 这个命令,再改一下权限,用 chmod 这个命令,然后编辑一下,见下图, 回车之后,进入, 点击字母“i”,进入编辑模式,复制刚才的公钥,右击粘贴公钥上去。 然后按“Esc”退出编辑模式,再写入“:wq”回车,保存退出。 现在需要关闭防火墙 selinux ,输入命令”setenforce 0“ , 再打开一个PuTTY窗口,选中lys-01,点击”Load“,加载一下,再点击左边的”SSH“ , 进入下图,点击”SSH“下面的”Auth“,再点击一下右边的”Browse“,选中刚刚保存的私钥文件,即可加载私钥。 然后再点击”Session“,选择”Save“,保存一下,一定要记得保存,否则下次还需要重新加载私钥。然后点击 ”Open“打开。 打开之后,发现界面跟之前的不太一样,输入用户名root之后,提示我们输入密钥的密码,不用输入Linux密码,即可登陆Linux。

2、Xshell密钥认证

打开Xshell,登陆进去,在菜单栏的工具那边选择”新建用户密钥生成向导“, 进入如下界面, 保持默认,选择下一步。密钥生成,点击”下一步“。 输入”密钥名称“,再输入两次密码,点击 ”下一步“。 生成公钥,见下图,也是要复制起来的。 现在打开PuTTY ,同样输入命令,编辑,如下: 回车,进入编辑页面,可以看到刚才保存的PuTTY公钥, 按字母”i“,进入编辑,现在把Xshell的公钥也粘贴进去,见下图: 其中,写了#开头的这一行,是不管用的,没有生效,可以用来做标注。按”Esc“键退出,编辑”:wq“回车,保存退出。 回到Xshell这边,我们可以保存一下公钥, 点击”保存为文件“,选择要保存的文件夹,然后命名,点击”保存“, 上图我们可以看出密钥保存的文件类型,后缀是”.pub“,我们要是想打开看看密钥的内容,一般软件是看不了的 ,可以选择写字板打开,即可查看。 回到上图界面之后,点击”完成“即可。然后跳出如下窗口,点击”关闭“就行,一会再用到。 我们回到Xshell窗口,按下图操作,进入属性设置, 出现下图界面,选择”用户身份验证“,在方法里面,默认是Password ,我们选择Public Key ,就是公钥登陆。用户密钥里面下拉选择刚刚设置的密钥名称,然后输入密钥密码,点击”确定“。 然后跳出下图窗口,点击”连接“。 进入Xshell窗口,可以发现自动登陆了,不需要输入用户名,也不需要输入密码,这就是使用密钥认证。 另外,需要注意的是,Xshell也是需要做下图这几个步骤的,这边没有做是因为刚才在做PuTTY密钥认证的时候做过了,以后单独用Xshell密钥认证的话记得这几步。

如果,在登陆Xshell的时候,碰到下图这种情况, 我们需要在”属性“那边去检查, 点击”用户身份验证“这边,查看红色框框中是否有信息错误,检查更正即可。