如何检查远程机器是否有SSH

时间:2015-02-14 17:36:31

标签: java ssh jsch

最好的方法是什么:

我希望将文件发送到pscp(从本地Windows计算机)或sshpass(从本地Unix计算机)到随机远程计算机的不同远程计算机。

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

做后者最好的方法是什么?

我已经考虑过使用JSch,但这是不是已经要求远程机器上存在SSH了?

这是一般的好方法吗?

1 个答案:

答案 0 :(得分:1)

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

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

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

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


尝试与JSch连接也会这样做。您只需要确保可以将“无法连接”错误与“无法进行身份验证”(表明SSH存在)等任何其他错误区分开来。