0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

你知道SSH密钥认证是如何工作的吗

阿铭linux 来源:阿铭linux 2023-01-31 13:31 次阅读

远程登录Linux除了可以使用用户名密码认证外,我们还可以通过密钥对认证。也许你对如何配置密钥认证非常熟悉,但你是否了解这个密钥对如何工作呢?

先来看一幅图

99f9546c-a120-11ed-bfe3-dac502259ad0.png

对于准备阶段,大家并不陌生,就是将客户端上的预先生成的公钥放到服务端上去。

关于这个密钥对,我啰嗦两句。其中公钥用来加密,私钥用来解密,只有和公钥配对的私钥才能解开其公钥加密的字符串。它们属于非对称加密。

说到加密,我不得不提一下,加密的方式主要有两种:

对称加密(也称为秘钥加密)

非对称加密(也称公钥加密)

所谓对称加密,指加密解密使用同一套密钥。如下图所示:

Client:

9a0b4dca-a120-11ed-bfe3-dac502259ad0.png

Server:

9a187798-a120-11ed-bfe3-dac502259ad0.png

对称加密的加密强度高,很难破解。但是在实际应用过程中不得不面临一个棘手的问题:如何安全地保存密钥呢?尤其是考虑到数量庞大的Client端,很难保证密钥不被泄露。一旦一个Client端的密钥被窃取,那么整个系统的安全性也就不复存在。为了解决这个问题,非对称加密应运而生。非对称加密有两个密钥:公钥和私钥。

再来看看公钥、私钥的协商交互过程:

① 如果SSH服务端开启了密钥认证,那么当客户端向目标服务器发送登录请求时,服务端会优先通过密钥验证方式进行登录验证。

② SSH服务端会读取~/.ss/authorized_keys里所有的公钥信息,这里需要注意,公钥存取的文件路径是可以在SSH服务配置文件里进行配置的。

③ SSH服务端会生成一串随机数,然后使用相应的公钥对其加密。

④ SSH服务端将加密后的密文发给客户端。

⑤ 客户端使用私钥解密,私钥存储路径通常为~/.ssh/id_rsa,当然也可以使用-i选项指定,或者在SSH客户端软件(如Xshell或者Mobaxterm)里配置。

9a29ca84-a120-11ed-bfe3-dac502259ad0.png

⑥ 客户端如果解密成功,则会把解密后的随机字符发送给服务端。如果解密失败,则会继续尝试密码验证等其它方式进行登录校验。

⑦ 服务端对客户端返回的随机字符串进行比对。

⑧ 如果比对成功,则认证成功,客户端顺利登录。否则,会反馈登录失败。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10991

    浏览量

    206735
  • 密钥
    +关注

    关注

    1

    文章

    119

    浏览量

    19588
  • 公钥
    +关注

    关注

    0

    文章

    22

    浏览量

    12001
  • SSH
    SSH
    +关注

    关注

    0

    文章

    177

    浏览量

    16075
  • 服务端
    +关注

    关注

    0

    文章

    61

    浏览量

    6871

原文标题:你知道SSH密钥认证是如何工作的吗

文章出处:【微信号:aming_linux,微信公众号:阿铭linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    消息认证码指的是什么?消息认证码为什么要带密钥

    在信息安全领域中常见的信息保护方法分为哪几类呢?消息认证码指的是什么?消息认证码为什么要带密钥呢?
    发表于 03-02 07:06

    在GitHub帐户上使用新的(或现有的)SSH密钥

    要在 GitHub.com 上配置帐户以使用新的(或现有的)SSH 密钥,还需要将密钥添加到帐户。在将新的 SSH 密钥添加到 GitHub
    发表于 06-22 16:36

    【触觉智能 Purple Pi OH 开发板体验】无网络状态连接ssh解决办法

    ] --------- 无网络状态连接ssh解决办法 有多种连接SSH的方式,以下是其中一些常见的方式: 终端命令行连接: 在终端命令行中,使用ssh命令加上目标主机的IP地址或域名,可以通过用户名和密码或
    发表于 08-20 12:38

    利用SSH密钥对建立安全通道

    SSH 由于其安全性逐渐成为TELNET、FTP 等网络管理工具的替代品,利用SSH密钥对生成功能可在客户机与远程系统之间建立一条安全通道,从而实现数据传输的安全性。传统的网络
    发表于 07-30 11:17 16次下载

    分布式CA下空间网络认证密钥安全度量方法

    分布式CA下空间网络认证密钥安全度量方法:基于分布式CA 的密钥管理策略解决了空间网络中不易实施集中式密钥管理的难题,但也给认证
    发表于 10-29 12:45 14次下载

    标准模型下增强的基于身份的认证密钥协商协议

    密钥抽取是密钥协商协议的一个重要环节,该文指出2007 年王圣宝等人提出的标准模型下基于身份的认证密钥协商协议在该环节存在重要缺陷;并根据密钥
    发表于 11-10 15:38 11次下载

    标准模型下高效的基于口令认证密钥协商协议

    基于口令的认证密钥协商协议是利用预先共享的口令协商安全性较高的密钥。现有的基于口令认证密钥协商协议大多需要较大的计算量,或者只在随机预言模型
    发表于 02-10 14:52 11次下载

    一种高效安全的认证密钥协商协议

    针对椭圆曲线中双线性对运算计算开销较大和PKI中证书管理的问题,利用基于身份的公钥密码算法和椭圆曲线加法群上的GDH困难问题,设计了一种高效安全的认证密钥协商协议,并在随机预言机模型下证明了协议
    发表于 01-15 11:51 0次下载
    一种高效安全的<b class='flag-5'>认证</b><b class='flag-5'>密钥</b>协商协议

    在Linux上如何配置基于密钥认证SSH

    众所周知,Secure Shell,又称 SSH,是允许你通过无安全网络(例如 Internet)和远程系统之间安全访问/通信的加密网络协议。
    的头像 发表于 10-09 17:28 3574次阅读

    一种格上基于R-LWE问题的认证密钥交换协议

    针对现有认证密钥交换协议计算复杂度高且无法抵抗量子攻击的问题,提出一种格上基于RWE问题的认证密钥交换协议。将基于RLWE问题构造的KEM方案与带消息恢复功能的数字签名算法相结合实现
    发表于 03-30 15:37 9次下载
    一种格上基于R-LWE问题的<b class='flag-5'>认证</b><b class='flag-5'>密钥</b>交换协议

    如何使用无密码SSH密钥登录远程Linux服务器

    SSH -keygen命令允许通过RSA、ECDSA和ED25519算法生成SSH密钥对。RSA得到了广泛的使用和最好的支持,而ED25519提供了更好的安全性和良好的性能。
    的头像 发表于 04-10 10:31 1135次阅读

    什么是SSH密钥?如何使用SSH密钥

    SSH密钥是用户名和密码的替代方法,是一种用户身份验证方法。它主要用于向服务提供加密文件而不是基于文本的密码。
    的头像 发表于 05-04 09:04 4492次阅读
    什么是<b class='flag-5'>SSH</b><b class='flag-5'>密钥</b>?如何使用<b class='flag-5'>SSH</b><b class='flag-5'>密钥</b>?

    轻量服务器怎么搭建ssh

    。在控制台中,找到并点击左侧导航栏中的密钥选项。然后,在密钥列表页面上,点击创建密钥按钮。 第二步:创建SSH密钥 在创建
    的头像 发表于 10-10 09:59 347次阅读

    SSH端口号是什么?SSH是如何工作的?

    SSH(Secure Shell,安全外壳)是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。传统远程登录或文件传输方式,例如Telnet、FTP,使用明文传输数据,存在很多
    的头像 发表于 11-10 10:06 1065次阅读
    <b class='flag-5'>SSH</b>端口号是什么?<b class='flag-5'>SSH</b>是如何<b class='flag-5'>工作</b>的?

    怎么用SSH密钥登陆vps?

    使用SSH密钥登录VPS(Virtual Private Server)是一种更安全和方便的方式,相比使用密码,SSH密钥更难被破解。以下是在Linux系统上使用
    的头像 发表于 02-20 16:29 251次阅读