我已成功使用 JSch 库创建到服务器的 SSH 连接,但我无法弄清楚如何将子系统 NETCONF 添加到 SSH 连接。
手动时,与sybsystem NETCONF建立SSH连接的命令行是ssh -p 4444 nerconf@myserver -s netconf
。
如何使用 JSch 将选项 -s netconf
添加到 SSH 连接? JSch 是否支持 NETCONF 的子系统?
最佳答案
JSch 一般支持 SSH 子系统,但不实现任何特定于 NETCONF 的东西(这不是必需的)。
您需要做的就是进行以下调用(伪代码):
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,子系统必须满足的唯一要求是正确的子系统名称。
关于java - 如何使用JSch与子系统NETCONF建立SSH连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49397575/