Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SSH连接到远程Linux服务器,但不使用第三方库_Java_Linux_Ssh - Fatal编程技术网

Java SSH连接到远程Linux服务器,但不使用第三方库

Java SSH连接到远程Linux服务器,但不使用第三方库,java,linux,ssh,Java,Linux,Ssh,我正在尝试为客户端制作一个小型Java实用程序,它从windows连接到远程Linux服务器,并将监视结果提供给Java文本视图框架基本上在队列管理器和空间使用上运行一些基本命令,并将输出保存到文件或返回到Java程序 但问题是我不能使用任何第三方库,比如Jsch或Ganymed 我想知道还有什么办法可以完成这件事吗 没有编写任何代码,因为我不确定没有这些库是否可以完成。SSH不是一个简单的协议,它的实现也不是一个简单的任务。如果您在Linux上,您可以像java中的任何外部进程一样运行ssh命

我正在尝试为客户端制作一个小型Java实用程序,它从windows连接到远程Linux服务器,并将监视结果提供给Java文本视图框架基本上在队列管理器和空间使用上运行一些基本命令,并将输出保存到文件或返回到Java程序

但问题是我不能使用任何第三方库,比如Jsch或Ganymed

我想知道还有什么办法可以完成这件事吗


没有编写任何代码,因为我不确定没有这些库是否可以完成。

SSH不是一个简单的协议,它的实现也不是一个简单的任务。如果您在Linux上,您可以像java中的任何外部进程一样运行ssh命令行。但是你的电脑在windows上。因此,您可以安装ssh for windows,有几种实现,然后从java运行命令行。这将起作用,但需要先决条件,实际上也需要使用第三方

另一种方法是使用一个可用的开放源代码库,或者将其与代码打包在一起,或者如果不违反许可协议,只使用其源代码并合并到项目中。显然,这并不意味着你不使用第三方,而只是隐藏这张脸。然而,可能要求不使用第三方的客户应该愚蠢到不察觉你们的伎俩

顺便说一句,为了安全起见,您可以将开源项目作为源代码,更改其包名并将其与您的项目一起编译。在这种情况下,真的很难抓住你


一句话:祝你好运

因为您可以访问linux机器,并且希望执行一系列命令,所以根本不需要使用ssh连接。在linux box上编写脚本并保存。要执行此脚本,请编写一个程序,我们将其命名为executor,它将启动脚本并获取其输出。从windows上的java应用程序连接到linux上的executor程序,而不是通过ssh直接运行脚本

您的遗嘱执行人可以如下所述:

只要您的脚本在linux上的apache服务器上以cgi bin程序的形式运行,这样您就可以从java应用程序连接到它,就像您使用java下载任何网页一样,查找HttpUrlConnection类的使用示例 另一个java应用程序—例如,寻找java应用程序和RMI之间的通信方式 ... 实际上,它可以是任何可以执行linux脚本的东西,并且可以使用比ssh更简单的协议与之交谈。。。
为什么你不能使用这些库?我的客户有一个非常严格的政策,不使用第三方库。至少不会,除非它是绝对必要的,然后它是一个漫长的过程,以获得批准,并下载到安全的客户端网络。你的客户是白痴。欢迎你告诉他这件事。如果你想要参考,我就在这里。感觉是相互的,我的朋友,但谋生却无能为力:是否有一套固定的命令,我的意思是命令不会改变?您是否可以访问linux在linux box上创建脚本?因此,从您的回答中我可以看出,我需要研究如何从安装在Windows上的第三方客户端(如Putty或ssh客户端)执行命令?这是一种可能的解决方案。我不是最好的。