具有以下条件:
- Windows 10 在控制台中启用了 Git 的 bash
- MacOS(El Capitan)
如果执行
ssh-keyscan -t ecdsa 192.168.1.X
在两个操作系统中都返回预期相同的数据,例如:
# 192.168.1.X:22 SSH-2.0-OpenSSH_8.9p1 Ubuntu-3
192.168.1.X ecdsa-sha2-nistp256 XxXxXxX...XxXxXxX
上述命令已在同一个局域网中的 6 台不同 PC 上进行了测试。到目前为止一切正常。此外,所有命令对于以下密钥类型也都有效ed25519
,例如:
ssh-keyscan -t ed25519 192.168.1.X
但如果密钥类型改为rsa
如下形式:
ssh-keyscan -t rsa 192.168.1.X
在 Windows 中返回与前两个键相同的结构 -情况在 MacOS 中始终只返回
# 192.168.1.X:22 SSH-2.0-OpenSSH_8.9p1 Ubuntu-3
正如您所看到的,只有“评论”,但没有看到公钥。
为什么会出现这种情况?是否可以修复它或者做一些额外的配置?
笔记
如果没有过滤器或没有指明密钥类型 - 则不使用该-t
选项 - 因此
ssh-keyscan 192.168.1.X
在 Windows 中返回提到的 3 种键类型,但在 MacOS 中仅返回 2 种(始终没有任何内容rsa
)
详细
执行如下:
ssh-keyscan -t rsa -v 192.168.1.X
输出为:
debug1: match: OpenSSH_8.9p1 Ubuntu-3 pat OpenSSH* compat 0x04000000
# 192.168.1.X:22 SSH-2.0-OpenSSH_8.9p1 Ubuntu-3
debug1: Enabling compatibility mode for protocol 2.0
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client [email protected] <implicit> none
debug1: kex: client->server [email protected] <implicit> none