答案1
/etc/ssh
提供系统配置:用户的默认配置 ( /etc/ssh/ssh_config
) 和守护程序的配置 ( /etc/ssh/sshd_config
)。守护进程使用的各种主机文件/etc/ssh
:它们包含主机密钥,用于识别服务器 - 就像用户通过密钥对(存储在其主目录中)识别一样,服务器也通过密钥识别对。使用多个密钥对是因为服务器通常提供多种类型的密钥:根据您的情况,有 RSA、ECDSA 和 Ed25519。 (用户也可以拥有多个密钥。)
各种密钥文件的使用如下:
- 您的私钥(如果有)用于在您连接的任何服务器上识别您的身份(它必须与您尝试连接的帐户的服务器授权密钥中存储的公钥相匹配);
- 服务器的私钥供客户端用来识别服务器;此类身份存储在 中
~/.ssh/known_hosts
,如果服务器的密钥发生更改,SSH 会对此进行投诉并禁用某些功能以减轻中间人攻击; - 您的公钥文件存储您需要复制到远程服务器的字符串(在 中
~/.ssh/authorized_keys
);它不被直接使用; - 服务器的公钥文件存储字符串,您可以将其复制到已知主机列表中以预先填充它;它也不直接使用。
最后一部分不经常使用;默认的 SSH 模型被称为“TOFU”(首次使用时信任):默认情况下,第一次使用时会信任连接,并且 SSH 只关心意外的连接变化。在某些情况下,能够信任第一个连接也很有用:服务器的操作员可以传递服务器的公钥,并且用户可以在第一个连接之前将这些密钥添加到他们的已知主机。
请参阅ssh_config
和sshd_config
有关详细信息(man ssh_config
以及man sshd_config
在您的系统上)的联机帮助页。用于已知主机的格式描述于联机sshd
帮助页。
答案2
/etc/ssh 保存主机(计算机/操作系统)的私钥和公钥对
~/.ssh 保存其所有者用户的密钥对
研究一下对称密钥和 PKI 的工作原理。您会发现,在大多数情况下,发送者和接收者都需要自己的私钥/公钥对。