SSH一般有两种登录方式:口令认证方式和密钥认证方式,一般我们使用的大多数都是口令认证方式,就是传统的密码登录,Xshell密码登录方式大家可能都比较了解,密钥认证登录方式安全性还是比较高的,这里主要介绍下使用密钥登录的方法:
密钥创建方式有两种:1、在Xshell客户端生成。2、在服务器上生成
1、在Xshell客户端生成
首先生成公钥和私钥,打开Xshell客户端,点击:工具 -> 新建用户密钥生成向导,如下图所示:

在弹出的对话框中,密钥类型选择:RSA,密钥长度:2048,然后点击下一步,如下图所示:

这里等待密钥生成成功,生成成功后点击下一步,如下图所示:

填写密钥信息,密钥名称可以自己定义,输入密钥登录密码,点击下一步,如下图所示:

到这里就生成了公钥,点击保存为文件,然后点击完成,如下图所示:

点击完成后,会弹出私钥,点击关闭即可,如下图所示:

下面使用用户名和密码的方式登录到服务器,做服务器端的配置,进入服务器后确保在当前用户的根目录下,可以使用“pwd”命令查看,我这里使用的是root登录,所以在 /root 下,如下图所示:

在当前目录下查看是否有 .ssh 隐藏目录,有的话可以直接进入,没有的话可以新建一个,可以用 ls -a 命令查看,如下图所示:

我这里没有,下面创建一个 .ssh 目录:
mkdir .ssh #新建一个 .ssh 目录
chmod 700 .ssh #赋予.ssh目录700权限
cd .ssh #进入 .ssh 目录
touch authorized_keys #新建一个authorized_keys文件
chmod 600 authorized_keys #赋予authorized_keys文件600权限
vi authorized_keys #使用vi编辑器编辑authorized_keys文件
使用vi编辑器编辑authorized_keys文件,按“i”键进入编辑状态,将刚刚Xshell生成的公钥粘贴进去,然后保存退出,如下图所示:

下面编辑 sshd 配置文件:
vi /etc/ssh/sshd_config #编辑sshd配置文件
去掉下面三句前面的 # 号:
PubkeyAuthentication yes #启用公钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys #设定PublicKey文件路径
RSAAuthentication yes #允许RSA密钥
把下面这句“yes”改成“no”:
PasswordAuthentication no # 不允许口令登录
编辑完成后,保存退出。
service sshd restart #重启sshd服务
所有配置都完成后,接下来进行测试:
打开Xshell,这时候我们在连接服务器的时候,密码这一栏变成了灰色,会自动选择使用密钥登录方式,如下图所示:

输入创建密钥时设定的密码,成功进入服务器。
2、在服务器上生成,然后下载到本地
SSH连接到服务器,然后执行下面命令:
ssh-keygen -t rsa #生成ssh 密钥
命令执行后会要求我们输入路径,直接回车即可,这个时候会自动创建 root/.ssh 目录,然后输入两次密钥密码,密钥也就生成完毕了,如下图所示:

这个时候我们需要把 root/.ssh 目录下的密钥保存到本地,等会会使用到,如下图所示:

执行下面命令将 id_rsa.pub 重命名为 authorized_keys ,并赋予 authorized_keys 600权限:
mv id_rsa.pub authorized_keys #重命名文件
chmod 600 authorized_keys #设置600权限
下一步同样需要修改sshd配置文件:
vi /etc/ssh/sshd_config #编辑sshd配置文件
去掉下面三句前面的 # 号:
PubkeyAuthentication yes #启用公钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys #设定PublicKey文件路径
RSAAuthentication yes #允许RSA密钥
把下面这句“yes”改成“no”:
PasswordAuthentication no # 不允许口令登录
编辑完成后,保存退出。
service sshd restart #重启sshd服务
配置完成后,打开Xshell载入密钥,点击:工具 -> 用户密钥管理者,在弹出的窗口中点击导入,如下图所示:

这里导入的是刚刚从服务器上传输到本地的密钥,也就是 id_rsa ,输入密码后即可导入成功,如下图所示:

到这一步我们已经完成了密钥的生成和服务器端的设置,新建一个Xshell连接,输入ip地址连接后,就会出现如下效果:

输入密钥密码后即可登录到服务器,这种密钥登录方式相对密码来说还是比较安全的,推荐大家试一试。
(资源库 www.zyku.net)