当前位置:网站首页 > Java基础 > 正文

java ssh教程 maven



 /

 * 使用jsch连接终端 </span><span style="color: rgba(0, 128, 0, 1)">*/</span> <span style="color: rgba(0, 0, 255, 1)">private</span> <span style="color: rgba(0, 0, 255, 1)">void</span> connectToSSH(SSHConnectInfo sshConnectInfo, WebSSHData webSSHData, SimpMessagingTemplate template) <span style="color: rgba(0, 0, 255, 1)">throws</span><span style="color: rgba(0, 0, 0, 1)"> JSchException, IOException { </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取jsch的会话</span> Session session =<span style="color: rgba(0, 0, 0, 1)"> sshConnectInfo.getJSch().getSession(webSSHData.getUsername(), webSSHData.getHost(), webSSHData.getPort()); Properties config </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> Properties(); config.put(</span>"StrictHostKeyChecking", "no"<span style="color: rgba(0, 0, 0, 1)">); session.setConfig(config); </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">设置密码</span> 

session.setPassword(webSSHData.getPassword());

 </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">连接 超时时间30s</span> session.connect(30000<span style="color: rgba(0, 0, 0, 1)">); </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">开启shell通道</span> Channel channel = session.openChannel("shell"<span style="color: rgba(0, 0, 0, 1)">); </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">通道连接 超时时间3s</span> channel.connect(3000<span style="color: rgba(0, 0, 0, 1)">); </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">设置channel</span> 

sshConnectInfo.setChannel(channel);

 </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">转发消息</span> transToSSH(channel, " 

);

 </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">读取终端返回的信息流</span> InputStream inputStream =<span style="color: rgba(0, 0, 0, 1)"> channel.getInputStream(); </span><span style="color: rgba(0, 0, 255, 1)">try</span><span style="color: rgba(0, 0, 0, 1)"> { </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">循环读取</span> <span style="color: rgba(0, 0, 255, 1)">byte</span>[] buffer = <span style="color: rgba(0, 0, 255, 1)">new</span> <span style="color: rgba(0, 0, 255, 1)">byte</span>[1024<span style="color: rgba(0, 0, 0, 1)">]; </span><span style="color: rgba(0, 0, 255, 1)">int</span> i = 0<span style="color: rgba(0, 0, 0, 1)">; </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">如果没有数据来,线程会一直阻塞在这个地方等待数据。</span> <span style="color: rgba(0, 0, 255, 1)">while</span> ((i = inputStream.read(buffer)) != -1<span style="color: rgba(0, 0, 0, 1)">) { template.convertAndSend(</span>"/topic/" + webSSHData.getUserId(), <span style="color: rgba(0, 0, 255, 1)">new</span> String(Arrays.copyOfRange(buffer, 0<span style="color: rgba(0, 0, 0, 1)">, i))); } } </span><span style="color: rgba(0, 0, 255, 1)">finally</span><span style="color: rgba(0, 0, 0, 1)"> { </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">断开连接后关闭会话</span> 

session.disconnect();

 channel.disconnect(); </span><span style="color: rgba(0, 0, 255, 1)">if</span> (inputStream != <span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">) { inputStream.close(); } } }</span></span></pre> 

版权声明


相关文章:

  • java编程手写教程2026-02-15 15:26:01
  • 腾讯java教程视频2026-02-15 15:26:01
  • 掠夺者农场java教程2026-02-15 15:26:01
  • java种田游戏教程2026-02-15 15:26:01
  • 菜鸟教程java界面2026-02-15 15:26:01
  • java人机交互教程2026-02-15 15:26:01
  • 韩顺平java入门视频教程2026-02-15 15:26:01
  • java电脑操作教程2026-02-15 15:26:01
  • 广州自学java教程2026-02-15 15:26:01
  • paypal集成java教程2026-02-15 15:26:01