我管理一个使用特定于客户端的密钥对连接到各种服务器的应用程序。我们有大约 70 个客户;在第一次接受 RSA 指纹(大约 5 年没有改变)之后,除了一个人之外,其他人都可以连接到我们的 FTP 服务器(对于 SCP)。
为了说明这种行为,我尝试每 15 分钟将 SCP 发送到服务器并将结果转储到/tmp/scp_(timestamp).log
. 无法连接的一个客户端首先被呈现三个不同指纹的循环:
$ grep -hA1 'The fingerprint for the RSA key' /tmp/scp_*.log | grep -E '[0-9a-f:]{16}' | sort | uniq -c
129 14:4c:06:43:01:53:81:ef:b7:fd:09:46:91:06:c1:c9.
98 34:9c:3f:13:f5:c4:74:9c:bd:b0:ff:4e:63:aa:eb:4c.
97 36:dd:a7:90:4c:71:06:95:3c:e6:f3:ad:2a:96:c3:6a.
不过,最近,我开始看到真正随机的(无论如何对我而言)指纹:
$ grep -hA1 'The fingerprint for the RSA key' /tmp/scp_*.log | grep -E '[0-9a-f:]{16}' | sort | uniq -c | head
1 02:5f:20:15:68:ea:0e:69:ef:7a:cc:1a:00:94:3f:96.
1 02:a0:62:65:bc:41:6b:35:cf:4c:c2:fc:66:72:d8:5a.
1 02:bb:5a:18:f1:ea:ca:71:f1:52:12:16:8c:85:5b:cc.
3 02:c6:73:85:a9:94:82:f6:7e:51:a9:26:e7:d3:f7:7f.
2 03:53:8c:74:b5:c1:dd:e4:7d:4b:17:e1:05:47:60:68.
1 03:b3:c8:c6:c1:ef:54:28:65:4c:5f:73:f4:43:39:93.
2 03:c7:8a:76:77:39:55:96:2e:c0:13:4a:21:f2:0d:51.
2 06:8d:17:f9:cd:e0:10:4c:d0:44:58:8b:66:f8:f5:a8.
1 07:fa:59:2b:90:96:4a:4c:85:eb:4a:37:91:d7:8e:0f.
2 0d:21:b5:86:8e:ae:4e:97:87:f6:42:c7:e4:11:c0:4a.
$ grep -hA1 'The fingerprint for the RSA key' /tmp/scp_*.log | grep -E '[0-9a-f:]{16}' | sort | uniq -c | wc -l
253
我对只有三个指纹感到困惑,但此时我对这个数字(253!!!)感到困惑,并准备认输,试图理解为什么会发生这种情况。我真正能够弄清楚的是,这始于 2019 年 11 月中旬。
但是等等,还有更多。不知何故,在 11 月的这个神秘事件之后没有成功的身份验证之后,我上周看到了一些成功的连接!
$ grep '^2019.*abc.*authenticated' sftp_8{1,2}.log | tail -2
2019-11-17 13:00:02,623 [18508]: user 'abc' authenticated via 'publickey' method
2019-11-17 13:00:17,351 [18514]: user 'abc' authenticated via 'publickey' method
$ grep '^2020.*abc.*authenticated' sftp_8{1,2}.log
2020-01-03 16:13:01,874 [6339]: user 'abc' authenticated via 'publickey' method
2020-01-03 16:17:21,147 [6665]: user 'abc' authenticated via 'publickey' method
2020-01-03 16:18:46,564 [6713]: user 'abc' authenticated via 'publickey' method
2020-01-03 16:19:02,504 [6825]: user 'abc' authenticated via 'publickey' method
2020-01-03 16:15:10,228 [24179]: user 'abc' authenticated via 'publickey' method
2020-01-03 16:18:57,216 [24494]: user 'abc' authenticated via 'publickey' method
$
更麻烦的是,客户服务器不是我们的硬件,所以我在合同上限制了我在这台服务器上可以做的事情。
同样,N-1 个(约 70 个)客户可以连接到我五年来见过的指纹。我只是在寻找正确的方向。谢谢阅读!