gpt4 book ai didi

java - 即使服务器的主机 key 存在于 known_hosts 文件中,JSch 连接也会因 UnknownHostKey 而失败

转载 作者:行者123 更新时间:2023-12-04 07:35:32 33 4
gpt4 key购买 nike

我正在使用 JSch 在多个 VPS 上部署各种文件。我能够通过 StrictHostKeyChecking 获得工作原型(prototype)关掉。我现在想重新启用主机 key 检查,这样我就不会受到 MITM 攻击。目前,客户端是连接到运行 Debian 的 VPS 的 Windows 机器。这是我到目前为止所做的:

  • 使用 "ssh-keyscan -t rsa <serverIp> >> ~/.ssh/known_hosts" 在我的本地计算机(Windows 客户端)上添加了远程 IP 地址
  • 将路径传递给我的 known_hosts文件到 JSch.setKnownHosts在我的应用程序中。

  • 尝试建立连接时,结果是

    com.jcraft.jsch.JSchException: UnknownHostKey: . RSA key fingerprint is


    这显然是由于我对主机 key 的工作方式或密码学缺乏了解。根据我的基本理解, known_hosts文件包含一个 key 。该 key 用于确保我们连接的远程 IP 是他们所说的,从而防止任何人试图“欺骗”自己作为服务器。
    我的 known_hosts文件看起来像
    184.154.70.174 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDNv4m+tOZUipp8UDGrd+kbtsM5R+tu3ZYZi3p7OTRWUX/Wqy74pONlLqI+/WGu77EHnOfdssJfclgo37vKLRFKneXZNAMXE7FUu5yUNOHlpPwzmvYUT/sp1k9CeNrtJAbkm05pOBIDqDQQGfQ+IAw9zqqo/sqJ6c8NKiVFAt4Ud0msvedb559dhYgcjwb52ABbsJ0mZ8FnU7LKG1592/ZTtYxam+M3qMhtJacrh5gpfZjjx2lGhqpOgvM+xwWeK6DQVn0QyIJd474G3gcm4M43ErRfzXOum3p/0wOw+hL1ora9eWSz2Wf9WuDXf86xkbZPD7Gy6ER5LBhquy331p7X
    我的代码是( SSH 是 JSch 的一个实例):
    try {
    SSH.setKnownHosts(new FileInputStream("C:/Users/nvulc/.ssh/known_hosts"));
    SSH.addIdentity(keyPath, keyPass);
    Session session = SSH.getSession("root", "184.154.70.174", 22);
    session.connect();
    } catch (Exception e) {
    e.printStackTrace();
    }
    结果是:
        com.jcraft.jsch.JSchException: UnknownHostKey: 184.154.70.174. RSA key fingerprint is b4:79:5a:58:d3:15:ad:a9:c7:af:cc:d7:09:f5:40:62
    at com.jcraft.jsch.Session.checkHost(Session.java:805)
    at com.jcraft.jsch.Session.connect(Session.java:345)
    at com.jcraft.jsch.Session.connect(Session.java:183)
    at Main.main(Main.java:40)

    最佳答案

    你的代码对我有用——https://www.browxy.com/#ALIEN_137442 – 它以“JSchException: Auth fail”结尾——这意味着它通过了主机 key 验证。
    确保 known_hosts文件采用纯 ASCII 编码(或没有 BOM 的 UTF-8,对于此类内容,它应该与 ASCII 相同)。但不带 BOM 的 UTF-8,只让 UTF-16 甚至更糟。
    也试试 Unix 行尾。虽然行尾不应该是一个问题。

    关于java - 即使服务器的主机 key 存在于 known_hosts 文件中,JSch 连接也会因 UnknownHostKey 而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67762389/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com