xshell 配置公钥登陆远程服务器

linux使用ssh协议进行远程登陆,主要有以下两种形式:

密码口令登录

通过密码进行登录,主要流程为:
1.客户端连接上服务器之后,服务器把自己的公钥传给客户端
2.客户端输入服务器密码通过公钥加密之后传给服务器
3.服务器根据自己的私钥解密登录密码,如果正确那么就让客户端登录

公钥登录

公钥登录是为了解决每次登录服务器都要输入密码的问题,流行使用RSA加密方案,主要流程包含:
1、客户端生成RSA公钥和私钥
2、客户端将自己的公钥存放到服务器
3、客户端请求连接服务器,服务器将一个随机字符串发送给客户端
4、客户端根据自己的私钥加密这个随机字符串之后再发送给服务器
5、服务器接受到加密后的字符串之后用公钥解密,如果正确就让客户端登录,否则拒绝。这样就不用使用密码了。

这里主要介绍如何在windows下利用xshell配置公私钥,上传至centOS7服务器,进行免密码登陆。

1.配置本地机器的公私钥

在xshell下单击工具-新建用户秘钥生成向导
xshell 配置公钥登陆远程服务器_第1张图片
选择好秘钥类型及长度,单击下一步
xshell 配置公钥登陆远程服务器_第2张图片
秘钥生成后 单击下一步
xshell 配置公钥登陆远程服务器_第3张图片
输入秘钥的密码,这个密码是xshell内部保密使用的,与秘钥本身无关
xshell 配置公钥登陆远程服务器_第4张图片
此时,公私钥都已经生成了,并且保存在xshell中。单击下一步,导出公钥
xshell 配置公钥登陆远程服务器_第5张图片
选择保存为文件,保存公钥,然后单击完成。
如果要导出私钥,可以再下面选择导出,不需要就跳过
xshell 配置公钥登陆远程服务器_第6张图片
到这里,win端的公私钥都已经生成了,现在配置服务器

2.配置服务器端

先上传前面生成公钥文件到服务器
加入公钥

cat id_rsa.pub >> ~/.ssh/authorized_keys

修改公钥文件执行权限

chmod 600 ~/.ssh/authorized_keys

更改ssh配置文件

vi /etc/ssh/sshd_config

找到下面3个关键字,取消前面的#

PasswordAuthentication yes      # 口令登录
RSAAuthentication yes         # RSA认证
PubkeyAuthentication yes       # 公钥登录 

找不到,直接写在里面也行,一般PasswordAuthentication都是默认开启的,不然没法使用账号密码登陆
重启sshd服务

systemctl restart sshd

服务器端配置完成

3.使用xshell进行登陆

新建连接,输入服务器IP和端口
xshell 配置公钥登陆远程服务器_第7张图片
选择 用户身份验证,公钥,输入用户名,在秘钥下拉列表中选择刚刚生成的秘钥,并输入密码。
xshell 配置公钥登陆远程服务器_第8张图片
点击确定,就可以了

参考:
https://www.cnblogs.com/Hi-blog/p/9482418.html
https://www.cnblogs.com/scofi/p/6617394.html
https://www.cnblogs.com/dyj–php/p/9655930.html
https://blog.csdn.net/defaultbyzt/article/details/103262716

你可能感兴趣的:(linux)