作为使用带密钥对的 SSH 和 rsync 解决各种问题的背景,我想要一个简单的概述,了解 SSH 身份验证期间发生的事件序列,以及几个客户端和主机文件中的每一个如何发挥作用。
谷歌发现了很多细节层次的解释,要么范围狭窄,要么范围广泛,细节混乱。更不用说许多不正确或混乱的解释和论坛帖子。
我最终创建了几个图表来澄清两件事:
我将在下面的答案中发布这些内容。
以下答案解释了使用公钥-私钥对(“公钥基础结构”或“PKI”)准备 ssh 身份验证所需的文件,以及在实际 ssh 会话期间如何使用这些文件。这里的一些细节使用了适用于 linux 的名称和目录,但这些原则适用于所有平台,这些平台使用与这些并行的程序和文件。感兴趣的主要特征是:
(请注意,有两种不同的通用签名算法,RSA 和 DSA,因此本讨论使用“rsa”时,可以使用字符串“dsa”代替。)
我希望这些图表会有所帮助。