有两台机器a和b。将a的公钥添加到b的公钥中~/.ssh/authorized_keys
,则a可以直接ssh
与b通信。
但是,当我.pub
从 a 中删除文件时,它仍然可以 ssh 到 b 而无需输入密码,但需要更长的时间。
为什么会发生这种情况?我假设 b 使用 a 的私钥进行一些计算,以逐一匹配其所有授权密钥。这是正确的吗?如果是这样,有人可以提供更多详细信息吗?
答案1
每个私钥文件始终包含有关相应公钥的信息。
这两个文件的原因是,在 OpenSSH 中,密码加密所有的密钥文件,包括公共参数,因此如果您有多个密钥,客户端就无法知道哪个是正确的,除非它要求您提供所有密钥的密码。
但是,如果 .pub 文件存在,客户端可以尝试将它们发送到服务器并找到一个可用的文件前它必须要求输入解锁密码。
(为了进行比较,PuTTY 的 .ppk 密钥有意仅加密私有参数而不加密公共参数。)