ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式。其中口令(密码)认证方式是我们最常用的一种,这里介绍密钥认证方式登录到linux/unix的方法。

使用密钥登录分为3步:

1、生成密钥(公钥与私钥);

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

3、配置ssh客户端使用密钥登录。

一、生成密钥公钥(Public key)与私钥(Private Key)

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

图1

弹出对话框,在“密钥类型”项选择“RSA”公钥加密算法,“密钥长度”选择为“2048”位密钥长度,如下图:

图2

点击下一步,生成密钥:

图3

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

图4

点击“下一步”,密钥生成完毕(Public key Format选择SSH2-OpenSSH格式),这里显示的是公钥,我们可以复制公钥然后再保存,也可以直接保存公钥到文件,如下图。私钥这里不显示,可以在“用户密钥管理者”导出到文件:

图5

点击“保存为文件”按钮,将公钥(Public key)保存到磁盘,文件名为“mykey.pub”,备用。

二、上传公钥(Public Key)到服务器:

使用到Xshell登录到服务器,进入到“/root/.ssh/”目录,

如果没有.ssh目录,可以新建一个

mkdir .ssh

运行rz命令(如果没有rz命令,运行yum install lrzsz安装),将key.pub发送到服务器,然后运行如下命令,将公钥(Public Key)导入到“authorized_keys”文件:

[root@localhost ~]# cd /root/.ssh/
[root@localhost .ssh]# rz
rz waiting to receive.
[root@localhost .ssh]# cat mykey.pub >> authorized_keys
[root@localhost .ssh]# chmod 600 authorized_keys
[root@localhost .ssh]# ls
authorized_keys mykey.pub
[root@localhost .ssh]# cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEApyZ/PYbWcOaRiTcDRmgUKoeVIIUcMu13zIFeErrbUbO9w7Yw9c6Y2gkU50PoEHchp5HUNq2UAuaNUuVhCz3gEdPHpH5A1ZjtXvPChjSJdJ4wka2uAoPPW+S30xZsaR8SLVKQBhIiNsc3IVnhVn5pwK4ROWuO0XBPWDOsf+QVZ24Mj21INW/D2ngbGZGv/1C43QLOF6F5K5s4q/Bn2Gf/MZohokgBeimMyiCKPobnX7Bg1/uViDe/lnSeCaOs/cNN/DpXf0POXlZKnvvRtJRl3noqWx3VIKstXvfsZ2DATMPcHetw772OSazYdiWrnbOhgSuihi0chFmOYusVMjSkNQ==

三、配置Xshell使用密钥认证方式登录到服务器:

打开Xshell,新一个连接,填写IP、端口等,如下图所示:

图6

点击“用户身份验证”方法中选择"Public Key",用户名填写root 密钥选择刚才的mykey,密码输入生成mykey时所填写的密码,如下图:

图7

点击确定,Xshell配置ssh免密码登录配置完成。