使用基于密码的身份验证时,SSH如何加密通信?

问题描述 投票:0回答:2

据我所知,当将SSH与基于密钥的身份验证一起使用时,服务器会将质询字符串发送给客户端,客户端会使用私钥对其进行加密,然后将其发送回服务器,服务器将使用公钥和。 。:

enter image description here

但是,当我们使用基于密码的身份验证时,SSH如何加密通信?即它如何生成密钥来加密从客户端到服务器的数据,反之亦然?

linux security unix encryption ssh
2个回答
1
投票

[使用密码通过另一台计算机连接时,SSH使用对称加密:

对称加密通常称为共享密钥或共享密钥加密。通常只使用一个密钥,或者有时一个配对密钥,其中一个密钥可以使用另一密钥轻松计算。

对称密钥用于在加密期间加密整个通信。SSH会话。客户端和服务器都导出密钥使用约定的方法,并且最终的密钥永远不会透露给任何第三方。进行创建对称密钥的过程通过密钥交换算法。是什么使这个算法特别安全的是,密钥永远不会传输在客户端和主机之间。相反,两台计算机共享公开数据,然后独立处理计算密钥。即使另一台机器捕获了公开共享的数据,它将无法计算密钥,因为密钥交换算法未知。

但是,必须注意,秘密令牌是特定于每个SSH会话,在客户端认证之前生成。一旦密钥已生成,所有数据包在两台计算机之间移动必须使用私钥加密。这包括键入的密码由用户进入控制台,因此始终可以保护凭据免受网络数据包嗅探器。

来源:https://www.hostinger.com/tutorials/ssh-tutorial-how-does-ssh-work


0
投票

https://man.openbsd.org/sshd_config.5#AuthenticationMethods

sshd如果禁用sshd配置中的UsePAM,则直接检查/ etc / passwd/ etc / shadow文件。

密码是通过协商的加密方式发送的,因此可以防止外界的攻击。基于密码的ssh身份验证将起作用,具体取决于您的服务器配置。

© www.soinside.com 2019 - 2024. All rights reserved.