【问题标题】:Java ssh clientJava ssh 客户端
【发布时间】:2011-01-13 21:34:00
【问题描述】:

我正在尝试创建一个 Web 应用程序,它将检查多个服务状态、服务器统计信息等。我发现这个 http://www.jcraft.com/jsch/ 似乎是相当不错的 ssh java 实现。但是每次我登录到服务器时,都会提示我像这样确认 RSA 密钥指纹:

我怎样才能覆盖它,在没有任何提示的情况下始终确认是?我想删除整个摇摆部分,我想在没有任何交互的情况下做到这一点,就像我从 jscraft.com 上的示例中获取的示例代码:

http://www.jcraft.com/jsch/examples/Exec.java

我对 swing 和 java 不太熟悉。

【问题讨论】:

    标签: java swing ssh


    【解决方案1】:
       public class ManoUserInfo implements UserInfo {
    
    String passwd;
    
    public void setPassword(String pass) {
        passwd = pass;
    }
    
    @Override
    public String getPassphrase() {
        return null;
    }
    
    public String getPassword() {
        return passwd;
    }
    
    public boolean promptPassword(String arg0) {
        return true;
    
    }
    
    public boolean promptPassphrase(String arg0) {
        return true;
    }
    //this method responsible for that message, so just make it return true
    public boolean promptYesNo(String arg0) {
      //  Object[] options = {"yes", "no"};
      /*  int foo = JOptionPane.showOptionDialog(null,
                arg0,
                "Warning",
                JOptionPane.DEFAULT_OPTION,
                JOptionPane.WARNING_MESSAGE,
                null, options, options[0]);*/
        return true;
    }
    
    public void showMessage(String message) {
        JOptionPane.showMessageDialog(null, message);
    }
    

    【讨论】:

      【解决方案2】:

      您必须了解为什么会弹出此消息。

      SSH 是一种安全服务,这意味着客户端的身份和服务器的身份都得到保证。为了保证您确实到达了您想要到达的服务器(关于您如何在您不知情的情况下连接到错误的服务器,谷歌“DNS缓存中毒”),客户端显示收到的服务器名称和指纹。这些值标识服务器。您应该通过安全通道(例如通过电话与服务器管理员)比较指纹来查看这是否真的是您在服务器上生成的指纹。

      话虽如此,通常的 SSH 客户端会保存您接受指纹/服务器名称的决定,并且不再询问。您的客户似乎没有。因此,您可以选择更改源代码(如果它是在开放许可下获得许可的),或者找到一种方法在弹出这个问题时自动按“是”(这可以通过 Autoit 3 等工具包和非常短的脚本来实现)。

      【讨论】:

      • or find a way to automatically press "Yes" whenever this question pops up (this can be achieved with toolkits like Autoit 3 with a very short script). 这是我感兴趣的部分,我阅读了您帖子中的所有其他内容,这就是为什么我要求答案我不知道该怎么做
      • 使用“Autoit 3”之类的软件,您可以自动执行 Windows 任务,例如运行或关闭应用程序、按下按钮、移动鼠标​​等。它是使用非常简单的脚本语言编写的,可以在 10 分钟内掌握。查看autoitscript.com/autoit3/index.shtml
      【解决方案3】:
      猜你喜欢
      • 2011-11-26
      • 2018-10-24
      • 2017-05-23
      • 1970-01-01
      • 2018-03-09
      • 1970-01-01
      • 2012-05-24
      • 2011-08-23
      • 1970-01-01
      相关资源
      最近更新 更多