我想知道在建立ssh连接的幕后发生了什么,我的意思是,直到我们从Linux机器在Linux的外壳上登陆。我知道密码不是在ssh连接中以纯文本发送的。那么他们做了什么来加密连接。在这里,我假设我没有生成我的公钥/私钥。我使用密码进行身份验证。所以我认为在连接之前不可能交换钥匙。我搜索了谷歌和服务器故障,但没有点击。在服务器错误中,我最接近的就是这个帖子在执行密钥协商时,ssh到底发送了什么?。
上述帖子假设用户通过公开密钥交换进行连接。但是我正在寻找一个不需要公钥/私钥的连接的情况。在我输入密码之前,它如何加密连接。它用什么来保护连接,这样密码就不会发送纯文本?
发布于 2011-06-11 10:48:43
当您第一次安装并启动SSH时,它将为机器生成公共密钥和私钥,这对于每个用户来说都是一样的。连接后,两台机器将交换它们的公钥部分(以纯文本形式),并使用它们加密主机之间的通信。密钥交换后,通信将切换到加密模式。
在每个用户~/.ssh/known_hosts
文件中,密钥将被存储并与下一个连接上发送的密钥进行比较。这就是如果您试图连接到最近重新安装的计算机时会出现错误的原因:在此过程中,您已经生成了一个新的机器密钥对,这与缓存的版本不匹配,这也可能意味着有人试图进行攻击。
https://serverfault.com/questions/279413
复制相似问题