Отправка нескольких команд на устройство через SSH

Я пытаюсь отправить несколько команд на устройство с помощью библиотеки SSHJ. Существует возможность отправки нескольких команд в этом формате:

Command command = sshSession.exec("show line; show ip interface brief;");

Это работает, но не всегда применимо в моем случае. Я нашел другие предложения, такие как второй ответ здесь.

Когда я пытаюсь выполнить это предложение, первая команда работает нормально, а затем циклически повторяется между этой ошибкой:

net.schmizz.sshj.connection.ConnectionException: Broken transport; encountered EOF
...
Caused by: net.schmizz.sshj.transport.TransportException: Broken transport; encountered EOF

or

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.

Спасибо за любую помощь. -Джаррод


person Dagnarus    schedule 09.09.2014    source источник


Ответы (1)


Никогда не нашел решения для конкретной проблемы. Но я решил проблему, используя DefaultPTY и предоставив свои собственные потоки со всеми данными, которые я хотел отправить. Играем с этот пример.

person Dagnarus    schedule 14.11.2014
comment
Можете ли вы опубликовать соответствующие части кода, который работал? - person golimar; 25.01.2018