我正在尝试使用SSHJ库向设备发送多个命令。可以选择以这种格式发送多个命令:
Command command = sshSession.exec("show line; show ip interface brief;");
这样可行,但在我的情况下并不总是有用。我找到了其他建议,例如第二个答案here。
当我尝试这个建议时,第一个命令工作正常,然后它在这个错误之间循环:
net.schmizz.sshj.connection.ConnectionException: Broken transport; encountered EOF
...
Caused by: net.schmizz.sshj.transport.TransportException: Broken transport; encountered EOF
或
Exception in thread "main" java.lang.IllegalStateException: Not connected
at net.schmizz.sshj.SSHClient.checkConnected(SSHClient.java:713)
at net.schmizz.sshj.SSHClient.startSession(SSHClient.java:651)
使用的代码是:
sshSession = sshClient.startSession();
Command command = sshSession.exec("sho ip int brie");
System.out.println(IOUtils.readFully(command.getInputStream()));//Just to see the reply while testing
command.join(5, TimeUnit.SECONDS);
sshSession = sshClient.startSession();
Command command2 = sshSession.exec("sho line");
System.out.println(IOUtils.readFully(command2.getInputStream()));//Just to see the reply while testing
如果需要,请注意,我要连接的设备以及它将连接的大多数设备都是Cisco网络设备。
感谢您的帮助。 -Jarrod