当我通过本地网络上的 ssh 连接到我的计算机时,putty 给我提供了正确的指纹
ssh-rsa 2048 ad:e3:4c:e3:d0:6f:81:2e:05:94:77:6c:0f:2c:a8:7f
这与我运行时计算机上的指纹相匹配ssh-keygen -E md5 -lf /etc/ssh/ssh_host_rsa_key.pub
当我通过互联网连接时,腻子给了我一个指纹
ssh-rsa 1040 86:03:d0:87:3d:67:3a:9a:9b:83:7a:39:a7:2e:e7:e0
为什么它给了我不同的指纹,这个 ssh-rsa 1040 是什么?
答案1
如果您无法确认该密钥指纹来自您的 ubuntu 主机,可能的原因是您没有真正连接到您认为的主机/服务。
您不仅获得了不同的主机密钥,而且 1040 的密钥长度似乎有点奇怪。对指纹 86:03:d0:87:3d:67:3a:9a:9b:83:7a:39:a7:2e:e7:e0 进行快速谷歌搜索,发现“前 1,000 个重复”的要点互联网上的 SSH 指纹”虽然不是结论性的,但至少让人更加怀疑。貌似,您的路由器可能有 SSH 服务,并且您的连接是您的路由器而不是其背后的服务器。
由于您的 ubuntu 主机是本地的,因此您可以检查服务器上的日志以查看是否正在建立 ssh 连接(并检查源 IP 是否是您期望的)。还要检查已建立连接的客户端 netstat 列表,以验证目标 IP 是否与您期望的相符。
如果您找不到该密钥指纹源自您的服务器的合法原因,请假设它不是您的服务器。如果您尝试使用密码登录到具有该指纹的服务器(无论成功或失败),则假定您的用户名/密码已被某些未知方泄露。
答案2
我的调制解调器是 SmartRG SR505N 我确实做了一堆 netstat 并环顾四周,最终发现即使路由器说在我启用端口转发到我的 LAN 端服务器后将其自己的 ssh 端口 22 移动到 2222,它实际上并没有移动它自己的 ssh 服务器,但这很奇怪,有时它会起作用,有时则不会。我在上读到了这个问题http://www.dslreports.com/forum/r29001235-DSL-Port-forwarding-on-SmartRG-SR505这就是我的调制解调器。我猜我必须使用不同的端口,哦,好吧。
答案3
我一开始还没注意到。在我的环境中有 2 台服务器。我只能将 ssh 端口转发到一个,比如说 serverA。
我的路由器配置为给我 serverA 和 serverB 拥有的每个域的本地 IP。
本地一切都很好。但通过 ssh 只能访问 serverA。由于当我想连接到 serverB 时,所有域都指向相同的 ip,因此我实际上连接到了 serverA。忘记了我的 ssh 配置中的代理设置。