ssh 登录_SSH两种登录验证方式

dbe25b0d4f03999372d1d0c1b4a6cef4.png

一、SSH协议

SSH是一种协议标准,其目的是实现安全远程登录以及其它安全网络服务。

二、SSH登录过程

SSH登录主要分为两个阶段:

1)协商客户端和服务端双方通信所使用的共享密钥,并用这个共享密钥实现后续会话过程的对称加密;

2)使用非对称加密方式验证客户端的身份。

三、协商会话所使用的共享密钥

4588515b2b227d27ab9d999148ae6e00.png
图 1 交换共享秘钥

1)客户端发起tcp连接请求;

2)服务器返回其支持的协议版本以及服务器的公共主机密钥,该密钥用于判断服务器是否是预期的主机;

3)双方交换会话密钥,用于后续会话做对称加密。

四、密码验证登录过程

669d4245ca4bec42b00dbbb29b3f2d5a.png
图 2 SSH密码验证过程

1)服务端收到客户端的请求后,把自己的公钥发送给客户端(与会话密钥不同,是服务器自身的公钥/私钥对);

2)客户端使用收到的公钥加密密码,并发送回服务器;

3)服务器使用自己私钥解密信息,若密码正确,则通过验证。

五、密钥验证登录过程

acf7d91a631db26f490c05171832f7af.png
图 3 SSH秘钥验证过程

前提条件是手动将客户端的公钥发送给服务器,并填入authorized_keys文件中。

1)客户端把用户验证的密钥对ID发送给服务器;

2)服务器根据密钥对ID在对应用户的authorized_keys文件中进行检索;

3)假设服务器在文件中找到符合密钥对ID的公钥,服务器将生成一个随机数,并用这个公钥进行加密;

4)服务器将加密后的信息发送给客户端;

5)假设客户端拥有对应的私钥,就可以解密出原来的随机数;

6)客户端将得到的随机数与加密会话所用的会话密钥拼接一起后,计算其MD5哈希值;

7)客户端将MD5哈希值发送回服务器;

8)服务器使用相同的会话共享密钥和他生成的随机数计算出MD5哈希值,并与客户端返回的MD5哈希值进行比较。如果两个值相等,证明客户端拥有对应私钥,则通过验证。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SSH(Secure Shell)是一种网络协议,用于在不安全的网络中建立安全的远程连接。SSH实现session免密登录的原理主要涉及公钥加密和身份验证两个方面。 1. 公钥加密: 在SSH中,使用公钥加密算法来实现安全通信。在免密登录中,首先需要生成一对密钥,包括公钥和私钥。用户将公钥保存在远程服务器上,而私钥则保存在本地。当用户发起SSH连接请求时,远程服务器会向用户发送一个随机数(称为challenge)。用户使用私钥对challenge进行加密,并将加密后的结果发送给服务器。服务器使用之前保存的公钥对加密结果进行解密,如果解密成功,则说明用户拥有对应的私钥,可以被认证通过。 2. 身份验证: 在公钥加密的基础上,SSH还需要进行身份验证来确保连接的安全性。常见的身份验证方式两种:密码身份验证和公钥身份验证。 - 密码身份验证:用户在连接时需要输入密码进行身份验证。但是,在免密登录中,我们希望避免每次都输入密码,因此需要使用公钥身份验证。 - 公钥身份验证:在免密登录中,用户将自己的公钥保存在远程服务器上。当用户发起SSH连接请求时,服务器会将保存的公钥与用户发送的加密结果进行比对,如果匹配成功,则认为用户身份验证通过。 综上所述,SSH实现session免密登录的原理是通过公钥加密和身份验证来确保连接的安全性和免去密码输入的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值