首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用JSch与子系统NETCONF建立SSH连接

如何使用JSch与子系统NETCONF建立SSH连接
EN

Stack Overflow用户
提问于 2018-03-21 11:20:05
回答 2查看 714关注 0票数 3

我已经成功地使用JSch库创建了到服务器的SSH连接,但是我不知道如何将子系统NETCONF添加到SSH连接。

手动操作时,与sybsystem NETCONF建立SSH连接的命令行为ssh -p 4444 nerconf@myserver -s netconf

如何使用JSch将选项-s netconf添加到SSH连接?JSch是否支持NETCONF的子系统?

EN

回答 2

Stack Overflow用户

发布于 2018-03-21 15:42:37

JSch通常支持SSH子系统,但不实现任何NETCONF特定的东西(这不是必需的)。

您所需要做的就是进行以下调用(伪代码):

代码语言:javascript
复制
com.jcraft.jsch.JSch ssh = new com.jcraft.jsch.JSch();

com.jcraft.jsch.Session session = ssh.getSession(username, host, port);

session.setUserInfo(myUserInfo); // authentication

session.connect(connectTimeout);

// this opens up the proper subsystem for NETCONF
com.jcraft.jsch.ChannelSubsystem subsystem = (com.jcraft.jsch.ChannelSubsystem) session.openChannel("subsystem");
subsystem.setSubsystem("netconf");

// at this point you may get your streams
subsystem.getInputStream();
subsystem.getErrStream();
subsystem.getOutputStream();

subsystem.connect();

对于NETCONF,子系统必须满足的唯一要求是正确的子系统名称。

票数 3
EN

Stack Overflow用户

发布于 2021-03-18 14:59:05

谢谢,普雷迪。

这是我的工作。netconf-hello已完成。

代码语言:javascript
复制
session = new JSch().getSession("username", "remote-ip", netconf-port);
session.setPassword("your-password");
session.setConfig("StrictHostKeyChecking", "no");
session.connect();

channel = (ChannelSubsystem) session.openChannel("subsystem"); //necessary
channel.setSubsystem("netconf"); //necessary
channel.connect();
System.out.println(channel.isConnected()); // debug use
System.out.println(session.isConnected()); // debug use


InputStream inputStream = channel.getInputStream(); // use this to read
OutputStream outputStream = channel.getOutputStream();
PrintStream printStream = new PrintStream(outputStream); // use this to send
票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49397575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档