最好的方法是什么:
我希望将文件发送到pscp
(从本地Windows计算机)或sshpass
(从本地Unix计算机)到随机远程计算机的不同远程计算机。
如果本地计算机有pscp
或sshpass
,我首先使用Java方法进行检查
然后我想检查远程机器是否有SSH可用。
做后者最好的方法是什么?
我已经考虑过使用JSch,但这是不是已经要求远程机器上存在SSH了?
这是一般的好方法吗?
答案 0 :(得分:1)
远程测试SSH存在的唯一方法是实际尝试连接。
从技术上讲,测试远程SSH端口22是否打开。在Java中,检查以下语句不会抛出是非常简单:
new Socket(address, 22).close();
您可以更进一步,从套接字读取以检查您是否获得了SSH标识字符串,如“SSH-2.0-OpenSSH_5.3”。
尝试与JSch连接也会这样做。您只需要确保可以将“无法连接”错误与“无法进行身份验证”(表明SSH存在)等任何其他错误区分开来。