SSH密钥认证工作流程详解 SSH密钥认证流程解析
SSH密钥认证工作流程详解
一篇关于SSH密钥认证工作流程详解的相关介绍,下面来一起了解一下吧。
远程登录Linux除了可以使用用户名密码认证外,我们还可以通过密钥对认证。也许你对如何配置密钥认证非常熟悉,但你是否了解这个密钥对如何工作呢?
先来看一幅图

对于准备阶段,大家并不陌生,就是将客户端上的预先生成的公钥放到服务端上去。
关于这个密钥对,我啰嗦两句。其中公钥用来加密,私钥用来解密,只有和公钥配对的私钥才能解开其公钥加密的字符串。它们属于非对称加密。
说到加密,我不得不提一下,加密的方式主要有两种:
- 对称加密(也称为秘钥加密)
- 非对称加密(也称公钥加密)
所谓对称加密,指加密解密使用同一套密钥。如下图所示:
Client:

Server:

对称加密的加密强度高,很难破解。但是在实际应用过程中不得不面临一个棘手的问题:如何安全地保存密钥呢?尤其是考虑到数量庞大的Client端,很难保证密钥不被泄露。一旦一个Client端的密钥被窃取,那么整个系统的安全性也就不复存在。为了解决这个问题,非对称加密应运而生。非对称加密有两个密钥:公钥和私钥。
再来看看公钥、私钥的协商交互过程:
① 如果SSH服务端开启了密钥认证,那么当客户端向目标服务器发送登录请求时,服务端会优先通过密钥验证方式进行登录验证。
② SSH服务端会读取~/.ss/authorized_keys里所有的公钥信息,这里需要注意,公钥存取的文件路径是可以在SSH服务配置文件里进行配置的。
③ SSH服务端会生成一串随机数,然后使用相应的公钥对其加密。
④ SSH服务端将加密后的密文发给客户端。
⑤ 客户端使用私钥解密,私钥存储路径通常为~/.ssh/id_rsa,当然也可以使用-i选项指定,或者在SSH客户端软件(如Xshell或者Mobaxterm)里配置。

⑥ 客户端如果解密成功,则会把解密后的随机字符发送给服务端。如果解密失败,则会继续尝试密码验证等其它方式进行登录校验。
⑦ 服务端对客户端返回的随机字符串进行比对。
⑧ 如果比对成功,则认证成功,客户端顺利登录。否则,会反馈登录失败。
以上分享的SSH密钥认证工作流程详解的相关内容,希望对您有所帮助!
相关阅读
-
维基百科是如何帮助保持互联网的开放性的
小编为网友们解答维基百科是如何帮助保持互联网的开放性的方面的介绍,相关内容具体如下: 维基百科体现了互联网最初愿景的精神,而你也可以成为其中的一部分。 维基百科是最有意义的
-
国内各地DNS服务器地址 全国各省电信移动联通DNS大全(DNS服务器IP地址
很多人都在寻找: DNS大全 ,下面IT袋小编就将 全国各大运营商常用的DNS地址和公共DNS地址 分享给大家,供大家在线查询,请保留本页面地址,我们会不断更新最适合您的DNS地址。 公共DNS服务
-
免费html网站模板代码 html制作网页案例代码分享
跟大家说一说免费html网站模板代码和html制作网页案例代码分享的相关知识,具体详情如下: Meduza是简约时尚和现代的博客HTML模板,带商店电商元素的博客页面。考虑所有的作品集网站需求页
-
数据库的六个对象分别是什么 数据库六个基本对象类型
今日IT小知识分享:数据库的六个对象分别是什么方面的讲解,接下来IT袋网小编就来介绍。 在关系型数据库中,通常有六个基本对象类型。 六个数据库基本对象类型分别是 数据表(Tables)


