在使用基于密码的身份验证的计算机上建立ssh连接期间会发生什么步骤?

Modified on: Sat, 09 Nov 2019 16:40:02 +0800

我想知道在建立ssh连接的幕后发生了什么,我的意思是直到我们从Linux机器上登陆Linux的shell。我知道密码不是在ssh连接中以纯文本形式发送的。那么他们如何加密连接呢?在这里,我假设我没有生成我的公钥/私钥。我使用密码进行身份验证。所以我认为在确保连接之前不能交换密钥。我搜索谷歌和服务器故障,但没有点击。我在serverfault中最接近的是这篇文章执行密钥协商时ssh发送了什么?
上面的帖子假设用户通过公共密钥交换连接。但我正在寻找一个没有公钥/私钥保护连接的情况。它甚至在我输入密码之前如何加密连接。它用于保护连接以便密码不发送纯文本?

最佳答案

当您第一次安装SSH并启动它时,它将为计算机生成公钥和私钥,这对每个用户都是相同的。在连接时,两台机器将交换它们的公钥部分(以纯文本形式)并使用它们来加密主机之间的通信。密钥交换后,通信将切换到加密模式。

在每个用户~/.ssh/known_hosts文件中,密钥将被存储并与下一次连接时的密钥进行比较。如果您尝试连接到最近重新安装的计算机,则会出现错误的原因:执行此操作时,您生成了新的计算机密钥对,这与缓存版本不匹配,这也可能意味着尝试攻击。

作者:Sven

相关问答

添加新评论