远程连接linux服务器是我们经常使用到的,这方便我们管理维护linux服务器。为提高linux服务器的安全性,通常我们连接linux服务器是通过密钥对(私钥和公钥,私钥存放在客户端,公钥保存在服务器端)认证的方式进行连接。

    Windows远程连接Linux的工具有很多种,比较流行的有SecureCRT、PuTTY、Xshell,本文主要介绍如何使用Xshell生成密钥对的配置和认证。

一、Xshell生成密钥(windows客户端)

wKioL1ZigsDBnPAcAACNiDFt0A4096.jpg

1、密钥类型选择RSA,密钥长度2048位

wKioL1Zigx3BkVp-AABkzi9-0yg061.jpg

2、生成公钥和私钥

wKiom1ZigwHQaOT1AABw84stSRg988.jpg

3、设置密钥名称,给该密钥设置用户密码

wKioL1ZihAvAcboNAABnDk_rTXQ433.jpg

4、公钥格式选择SSH2-OpenSSH,复制公钥,并保存为文件。

wKioL1ZihPeDAprzAACPTrCaMlU412.jpg


5、管理密钥wKioL1ZihprTV5a8AAJJANocP5A761.jpg

wKioL1Zihr_Bph6uAABFhKuX2Jk359.jpg

wKiom1ZihmGgBWneAACgQzkU5Ak197.jpg


二、上传公钥到Linux服务器

1、将生成的公钥保存在/root/.ssh/authorized_keys文件中,该文件的内容和Xshell生成的公钥内容是一样的。

[root@www ~]# mkdir /root/.ssh
[root@www ~]# vim /root/.ssh/authorized_keys
wKioL1ZiiA_yjEqgAABV_gD-dhI084.jpg

2、修改/root/.ssh/文件和authorized_keys的权限

[root@www ~]# chmod 700 /root/.ssh/
[root@www ~]# chmod 600 /root/.ssh/authorized_keys



3、编辑/etc/ssh/sshd_config文件,把RSAAuthentication yes和PubkeyAuthentication yes这两行前面#注释去掉,这样就启用了密钥认证方式,把PasswordAuthentication no行yes改为no,作用是禁用口令认证。

[root@www ~]# vim /etc/ssh/sshd_config

RSAAuthentication yes
PubkeyAuthentication yes


PasswordAuthentication no
4、重启sshd服务,使配置生效

[root@www ~]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]


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

    1、打开一个Xshell,选择Public Key,输入用户名,用户密钥选择第一步创建的密钥,密码是用户密钥加密的密码。

wKioL1ZiizbRm__VAACxE3_7S7o405.jpg

    2、认证并登录成功

wKioL1ZijCbQ0ap6AAIP6qSi4dc208.jpg