我在尝试使用 Java 中的 Ganymed 库测试连接时遇到了一些问题,2 周前它工作正常,没有问题,但现在我收到以下错误消息:
The execute request failed.
这与 Ganymed “execCommand()” 方法有关。当我使用 WinSCP 连接时,一切正常,但尝试使用 java 连接时出现错误。我也在想,如果防火墙也可能是原因,只是一个想法。
我用来执行tail命令的代码如下:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;
public class SSHTesting {
public static void main(String[] args) {
try{ Connection conn = new Connection("eappdev101.momentum.co.za");
conn.connect();
boolean isAuthenticated = conn.authenticateWithPassword("username", "password");
if (isAuthenticated == false) {
System.out.println("Credentials are wrong.");
}
Session sess = conn.openSession();
sess.execCommand("tail -f /logs/SystemOut.log");
InputStream stdout = new StreamGobbler(sess.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
sess.close();
conn.close();
System.out.println("Done");
}
catch(Exception ie){
System.out.println(ie.getMessage());
}
}
}
任何光线都受到高度赞赏。先感谢您。