ssh免密验证登录

ssh基于口令和秘钥的两种验证级别(认证阶段)

  openssh (基于口令的安全验证)

只要知道自己的账号和密码,就可以远程登陆到主机。所有传输的数据都会被加密,但是容易遭到攻击,冒充真正服务器遭到攻击。

openssl( 基于密匙的安全验证 )(客户端验证服务器)

需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器

注:与验证用户信息阶段相反(密钥交换)

客户端——————————————服务器端

私钥                                                      公钥/私钥

服务器端生成一段密钥对,将公钥明文传输到客户端;客户端用公钥加密会话,若服务器能用私钥解密成功则验证登陆成功

(通常只要第一次验证需要此过程)

配置ssh服务器要求通过linux主机和windows登录服务器实现免密登录

1.client生成一对密钥,将自己的公钥存放在Server上,追加在文件authorized_keys中。

2.Server端接收到Client的连接请求后,会在authorized_keys中匹配到Client的公钥pubKey,并生成随机数R,用Client的公钥对该随机数进行加密得到pubKey(R),然后将加密后信息发送给Client

3.Client端通过私钥进行解密得到随机数R,然后对随机数R和本次会话的SessionKey利用MD5生成摘要Digest1,发送给Server端。

4.Server端会也会对R和SessionKey利用同样摘要算法生成Digest2。

5.Server端会最后比较Digest1和Digest2是否相同,完成认证过程。

手动生成一对密钥并上传给Linux主机.ssh/目录下

修改上传文件名称为authorized_keys

[root@S .ssh]# mv id_rsa_3072.pub authorized_keys

[root@S .ssh]# ll

总用量 16

-rw-r--r--. 1 root root 548 7月 18 11:26 authorized_keys

-rw-------. 1 root root 2590 7月 18 10:50 id_rsa

-rw-r--r--. 1 root root 560 7月 18 10:50 id_rsa.pub

-rw-r--r--. 1 root root 352 7月 18 11:28 known_hosts

登录测试:

[E:\Xshell\Sessions]$ ssh [email protected]

猜你喜欢

转载自blog.csdn.net/weixin_45934327/article/details/107580562
今日推荐