xshell 密钥登录linux 服务器,Xshell利用ssh密钥登录Linux的方法

SSH一般有两种登录方式:口令认证方式和密钥认证方式,一般我们使用的大多数都是口令认证方式,就是传统的密码登录,Xshell密码登录方式大家可能都比较了解,密钥认证登录方式安全性还是比较高的,这里主要介绍下使用密钥登录的方法:

密钥创建方式有两种:1、在Xshell客户端生成。2、在服务器上生成

1、在Xshell客户端生成

首先生成公钥和私钥,打开Xshell客户端,点击:工具 -> 新建用户密钥生成向导,如下图所示:

5b0acad3169668c3f66a9bc167fd2b34.png

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

f93c6f766f55915d09d32ff38f2d5497.png

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

755ea0fbb22659f4f57522dc66a218c0.png

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

b891d81dfa64f3edbc4fd4f796a69764.png

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

f83c951a0ffbf9f9442aa510f67fb7ae.png

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

9a483797a6b5ec4f6959cc6700c5a261.png

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

62b1702e2d81a3c6012a4fa1b999a8d7.png

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

7c1e4df0926abda50a71ccf0e3ece029.png

我这里没有,下面创建一个 .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生成的公钥粘贴进去,然后保存退出,如下图所示:

070f89a67a03dc776abe0f19cf216f8f.png

下面编辑 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,这时候我们在连接服务器的时候,密码这一栏变成了灰色,会自动选择使用密钥登录方式,如下图所示:

7f1d7c2ddad0cec4509e43fed96b18ef.png

输入创建密钥时设定的密码,成功进入服务器。

2、在服务器上生成,然后下载到本地

SSH连接到服务器,然后执行下面命令:

ssh-keygen -t rsa #生成ssh 密钥

命令执行后会要求我们输入路径,直接回车即可,这个时候会自动创建 root/.ssh  目录,然后输入两次密钥密码,密钥也就生成完毕了,如下图所示:

281364daf24ef86563ee572b04023ad9.png

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

3f7ac25ab358093963b2f31d0e721550.png

执行下面命令将 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载入密钥,点击:工具 -> 用户密钥管理者,在弹出的窗口中点击导入,如下图所示:

21e76f159721271a2c67c7b85b58f6e5.png

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

5337e9f21feed3f881a65a4dc3bb0510.png

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

659af63b9901e83c99adba0a75dacbc5.png

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

(资源库 www.zyku.net)