【问题标题】:How to check if remote machine has SSH如何检查远程机器是否有 SSH
【发布时间】:2015-02-14 17:36:30
【问题描述】:

最好的方法是什么:

我想用pscp(从本地Windows机器)或sshpass(从本地Unix机器)将文件发送到不同的远程机器到随机的远程机器。

如果本地机器有pscpsshpass,我先用Java 方法检查。
然后我想检查远程机器是否有 SSH 可用。

后者的最佳方法是什么?

我曾考虑过为此使用 JSch,但这是否不需要远程计算机上存在 SSH?

一般来说这是一个好方法吗?

【问题讨论】:

    标签: java ssh jsch


    【解决方案1】:

    远程测试 SSH 存在的唯一方法是实际尝试连接。

    从技术上讲,测试远程 SSH 端口 22 是否打开。在 Java 中,只需检查以下语句是否抛出异常:

    new Socket(address, 22).close();
    

    您甚至可以更进一步,从套接字中读取以检查您是否获得了 SSH 标识字符串,例如“SSH-2.0-OpenSSH_5.3”。


    尝试与 JSch 建立联系也可以。您只需确保可以将“无法连接”错误与“无法验证”等任何其他错误区分开来(这表明存在 SSH)。

    【讨论】:

      猜你喜欢
      • 2019-06-08
      • 2012-10-02
      • 2016-05-23
      • 1970-01-01
      • 2019-06-09
      • 1970-01-01
      • 2020-06-23
      • 1970-01-01
      • 2020-01-15
      相关资源
      最近更新 更多