java - जेएसएच के साथ एसएसएच पर निष्पादित करने के लिए इनपुट/उपकमांड प्रदान करना



ssh router (1)

ChannelExec.setCommand कई बार कॉल करने पर कोई प्रभाव नहीं पड़ता है।

और यहां तक ​​कि अगर यह था, मुझे लगता है कि 192.168.50.1 : और Config.txt कमांड नहीं हैं, लेकिन copy run tftp : लिए इनपुट copy run tftp : कमांड, वे नहीं हैं?

यदि ऐसा है, तो आपको उन्हें कमांड इनपुट पर लिखना होगा।

कुछ इस तरह:

ChannelExec channel = (ChannelExec) session.openChannel("exec");
channelExec.setCommand("copy run tftp : ");
OutputStream out = channelExec.getOutputStream();
channelExec.connect();
out.write(("192.168.50.1 : \n").getBytes());
out.write(("Config.txt \n").getBytes());
out.flush();

मैं Jcraft Jchch लाइब्रेरी का उपयोग करके Java एप्लिकेशन के माध्यम से राउटर को प्रबंधित करने का प्रयास कर रहा हूं।

मैं TFTP सर्वर के माध्यम से रूटर विन्यास भेजने की कोशिश कर रहा हूं। समस्या मेरे जावा कोड में है क्योंकि यह पुटी के साथ काम करता है।

यह मेरा जावा कोड:

int port=22;
String name ="R1";
String ip ="192.168.18.100";
String password ="root";

JSch jsch = new JSch();
Session session = jsch.getSession(name, ip, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
System.out.println("Establishing Connection...");
session.connect();
System.out.println("Connection established.");

ChannelExec channelExec = (ChannelExec)session.openChannel("exec");

InputStream in = channelExec.getInputStream();
channelExec.setCommand("enable");

channelExec.setCommand("copy run tftp : ");
//Setting the ip of TFTP server 
channelExec.setCommand("192.168.50.1 : ");
// Setting the name of file
channelExec.setCommand("Config.txt ");

channelExec.connect();

BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line;
int index = 0;
StringBuilder sb = new StringBuilder();
while ((line = reader.readLine()) != null)
{
    System.out.println(line);
}
session.disconnect();

मुझे मिला

रेखा के पास एक अमान्य ऑटोकॉमैंड '192.168.50.1' है

समस्या यह है कि मैं उन क्रमिक आदेशों को कैसे चला सकता हूं।





cisco