Linux入门系统菜鸟

菜鸟入门:图文详解使用Xshell生成密钥对进行SSH私钥加密登录 以及经典故障排查

SSH提供了很多种不同的身份验证,其中最常用的两种便是密码验证和基于公钥/私钥的身份验证。与密码相比,这种方法有显著的优点:在验证身份的一方没有任何办法可以拿到用户的私钥。其次,公钥/私钥要比密码长的多,因而可以挫败通过穷举的方式破解的可能性。所以在这里我们介绍使用Xshell生成密钥,并进行认证方式登录到Linux的方法。

菜鸟入门:图文详解使用Xshell生成密钥对进行SSH私钥加密登录 以及经典故障排查插图

 

一、步骤总结

使用密钥登录分为3步:

1、生成密钥(公钥与私钥),并配置ssh客户端Xshell使用密钥登录;

2、放置公钥(Public Key)到服务器~/.ssh/authorized_key文件中;

3、验证登陆是否可用。

 

1. 生成密钥(公钥与私钥),并配置ssh客户端Xshell使用密钥登录

打开Xshell,在菜单栏点击“工具”,在弹出的菜单中选择“(新建用户密钥生成向导)”,如下图:

菜鸟入门:图文详解使用Xshell生成密钥对进行SSH私钥加密登录 以及经典故障排查插图1

弹出“新建用户秘钥生成向导”对话框,在“秘钥类型”项选择“RSA”公钥加密算法,“秘钥长度”选择任意密钥长度,长度越长,安全性越高,但生成所需时间越长。如下图我们选择8192位:

菜鸟入门:图文详解使用Xshell生成密钥对进行SSH私钥加密登录 以及经典故障排查插图2

点击“下一步”,等待密钥生成

<加密8192位大约花费了35秒,这取决于CPU的性能>

完成后点击“下一步”

菜鸟入门:图文详解使用Xshell生成密钥对进行SSH私钥加密登录 以及经典故障排查插图3

继续下一步,在“秘钥名称”中输入Key的文件名称,我这里为“AndyX.Net Key”;在“加密密码”处输入一个密码用于加密私钥,并再次输入密码确认,如下图:

菜鸟入门:图文详解使用Xshell生成密钥对进行SSH私钥加密登录 以及经典故障排查插图4

 

点击“下一步”,密钥生成完毕(Public key Format选择SSH2-OpenSSH格式),这里显示的是公钥,我们可以复制公钥然后再保存,也可以直接保存公钥到文件,如下图:菜鸟入门:图文详解使用Xshell生成密钥对进行SSH私钥加密登录 以及经典故障排查插图5

点击“保存为文件”按钮,将公钥(Public key)保存到磁盘,文件名为“AndyX.Net_Key.pub”,六座备用。最后点击“完成”即可。

公钥保存完后,会返回“用户密钥”管理界面,在这里我们能看到刚才生成的密钥信息:

菜鸟入门:图文详解使用Xshell生成密钥对进行SSH私钥加密登录 以及经典故障排查插图6

如果你不满意刚才填写的密钥名称,你也可以点击“属性”来进行改名:

菜鸟入门:图文详解使用Xshell生成密钥对进行SSH私钥加密登录 以及经典故障排查插图7

接下来我们需要导出私钥文件。点击“导出”,导出为私钥文件。这个文件用于跟刚才的公钥(pub)文件配对的,请妥善保管。

如果你向本次实验一样添加了密码,在点击“保存”后,会弹出一个框,输入刚才设置的密码后才可以导出私钥。

菜鸟入门:图文详解使用Xshell生成密钥对进行SSH私钥加密登录 以及经典故障排查插图8

返回保存的目录,验证公钥私钥文件是否存在:

菜鸟入门:图文详解使用Xshell生成密钥对进行SSH私钥加密登录 以及经典故障排查插图9

 

2.放置公钥(Public Key)到服务器~/.ssh/authorized_key文件中

上面的步骤只是生成了公钥和私钥的过程,接下来就是要将刚才生成的公钥放到要管理的服务器上。

使用到Xshell登录到服务器,以root权限登录(注意:这里以root账户为例,如果是普通账户则不需要使用root权限)进入到“/root/.ssh/”目录(注意:如果使用普通账户,路径应当为/home/<账户名>/.ssh/),运行rz命令(如果没有rz命令,运行yum/apt/zypper install lrzsz安装),将key.pub发送到服务器并使用vi/nano命令打开:

菜鸟入门:图文详解使用Xshell生成密钥对进行SSH私钥加密登录 以及经典故障排查插图10

如果/root/.ssh/目录不存在,则需要使用mkdir命令手动创建:

mkdir -p /root/.ssh/

菜鸟入门:图文详解使用Xshell生成密钥对进行SSH私钥加密登录 以及经典故障排查插图11

最后将公钥权文件限修改为600,否则无法生效:

chmod 600 /root/.ssh/authorized_keys

 

3. 验证登陆是否可用

如果使用Xshell,即可直接进行登陆测试。

如果使用ssh控制台,你可能需要执行以下命令及进行登录(请注意-i参数):

ssh  -i  <SSH私钥文件路径>  root@<服务器地址>

菜鸟入门:图文详解使用Xshell生成密钥对进行SSH私钥加密登录 以及经典故障排查插图12

 

二、典型故障排查

症状: 所选的用户密钥未在远程主机上注册,请再试一次。

菜鸟入门:图文详解使用Xshell生成密钥对进行SSH私钥加密登录 以及经典故障排查插图13

或者使用ssh命令结合-i参数进行登录,显示错误为“Permission denied (publickey)”

菜鸟入门:图文详解使用Xshell生成密钥对进行SSH私钥加密登录 以及经典故障排查插图14

 

排查:

1.检查你登陆的用户目录下是否存在authorized_keys文件;

2.检查authorized_keys文件权限是否为600(-rw——);

菜鸟入门:图文详解使用Xshell生成密钥对进行SSH私钥加密登录 以及经典故障排查插图15

3. 检查sshd_config服务是否已经开启的AuthorizedKeysFile字段;

菜鸟入门:图文详解使用Xshell生成密钥对进行SSH私钥加密登录 以及经典故障排查插图16

4. 如果在最近修改过sshd_config文件,请重新载入ssh服务的配置:

systemctl restart sshd

 

(END)

 

参考文献: Xshell配置ssh免密码登录-密钥公钥(Public key) – 芹溪

[本文为AndyX.Net文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明!]