在sshd(8)手册页中:
OpenSSH SSH守护进程只支持SSH协议2。每个主机都有一个特定于主机的密钥,用于标识主机.每当客户端连接时,守护进程都会使用它的公共主机键进行响应。客户端将主机密钥与自己的数据库进行比较,以验证其未更改。前向保密是通过Diffie-Hellman密钥协议提供的。此密钥协议将导致共享会话密钥。会话的其余部分使用对称密码进行加密。
(我强调)
有人能向我解释一下认证过程是如何工作的吗?据我所知:
我说的对吗?有人能详细解释一下,客户端将主机密钥与自己的数据库进行比较,以验证它没有改变方法吗?
发布于 2022-01-15 10:30:19
有人能详细解释一下,客户端将主机密钥与自己的数据库进行比较,以验证它没有改变方法吗?
当您将ssh放入(以前未知的)计算机中时,您将得到以下查询(例如,ECDSA类型的密钥):
ssh user@newhost:
The authenticity of host 'newhost (<IP-address>)' can't be established.
ECDSA key fingerprint is SHA256:<fingerprint>.
Are you sure you want to continue connecting (yes/no/[fingerprint])?使用yes应答时:
Warning: Permanently added 'newhost,<fingerpint>' (ECDSA) to the list of known hosts.主机指纹现在添加到文件~/.ssh/known_hosts(默认位置)中。
对于未来的连接,主机可以使用此指纹进行唯一标识,因此不会出现对话。但是,如果主机没有这样做,您将收到有关主机更改的警告。这是为了确保没有人可以捕获主机、重定向域等等,除非您作为ssh-client收到有关此方面的警告。
将其与手动接受一次的网站证书进行比较,如果更改,则网站标记为不安全。
https://unix.stackexchange.com/questions/686430
复制相似问题