Java-与SSH会话交互
为了学习Java,我目前正在构建一个应用程序。我试图通过SSH连接到我的服务器,执行一些东西并检索系统提供给我的东西。我正在使用SSH进行管理 目前,我能够通过SSH连接到服务器并执行标准命令 我正在执行这样的命令:Java-与SSH会话交互,java,ssh,jcabi,Java,Ssh,Jcabi,为了学习Java,我目前正在构建一个应用程序。我试图通过SSH连接到我的服务器,执行一些东西并检索系统提供给我的东西。我正在使用SSH进行管理 目前,我能够通过SSH连接到服务器并执行标准命令 我正在执行这样的命令: new Shell.Plain(sshpw).exec(cmd); 其中“sshpw”是一个SSHByPassword对象 现在我读到我能够通过对象本身的方法而不是使用shell来执行命令。由于文档说明只有第一个参数用于命令,其余三个用于日志记录,因此我尝试了以下方法: sshp
new Shell.Plain(sshpw).exec(cmd);
其中“sshpw”是一个SSHByPassword对象
现在我读到我能够通过对象本身的方法而不是使用shell来执行命令。由于文档说明只有第一个参数用于命令,其余三个用于日志记录,因此我尝试了以下方法:
sshpw.exec(cmd, System.in, System.out, System.err);
但产出绝对没有差异(无)
关于我需要阅读的内容,有什么建议吗?处理外部库对我来说是一件新鲜事,如果我忽略了一些主要文档,那么很抱歉。您对
sshpw.exec
的调用是否返回退出代码?这是怎么一回事?另外,SSHByPassword#exec
关闭作为参数传递的流,我不知道如果您尝试关闭系统流会发生什么。我猜您必须将站点的证书添加到密钥存储(cacerts)否则Java拒绝连接。@maraca:SSH很少使用任何类型的证书,也从不使用cacerts中的类型(X.509)。您可能会混淆SSH和SSL,后者是一种完全不同的协议,尽管两者都涉及“安全”的概念。@dave_thompson_085对,谢谢,认为有点奇怪,但无法准确指出。什么是cmd
?