java ssh登录windows执行命令报错?报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

java ssh登录windows执行命令报错?报错

2020-06-10 09:56:39 644 1

@Holiday_ 你好,想跟你请教个问题:

远程服务器是windows,我也正确安装开启了ssh服务,我本地用客户端putty可以连接上,但是我本地用java也可以创建session,但是下面执行一个命令就会报错session.execCommand("cmd.exe /c \"ipconfig\"");

java.io.IOException: The execute request failed.
    at ch.ethz.ssh2.channel.ChannelManager.requestExecCommand(ChannelManager.java:703)
    at ch.ethz.ssh2.Session.execCommand(Session.java:249)
    at com.tekview.apex.nms.nbu.TestRemoteConnect.main(TestRemoteConnect.java:32)
Caused by: java.io.IOException: This SSH2 channel is not open (The connection is being shutdown)
    at ch.ethz.ssh2.channel.ChannelManager.waitForChannelSuccessOrFailure(ChannelManager.java:174)
    at ch.ethz.ssh2.channel.ChannelManager.requestExecCommand(ChannelManager.java:699)
    ... 2 more

取消 提交回答
全部回答(1)
  • 爱吃鱼的程序员
    2020-06-10 09:56:56

    你好!在windows系统的远程服务器中,SSH服务我采用的密码认证的方式,使用密码连接后,我打开会话执行了 session.execCommand("ipconfig");然后得到了输出结果。


    回复 @freedom2011:可以给你的,但是我感觉你应该不是代码的问题,是不是你设置的认证方式的问题?你可以先设置成密码认证方式来测试是否可以,成功之后你在尝试秘钥的方式。我用了session.execCommand("ipconfig");还是报错可以把你的样例给我吗?我也使用了这个 session.execCommand("ipconfig");也是一样的错误 publicvoidconn()
      {
        StringhostName="192.168.100.***";
        intport=22;
        StringuserName="Administrator";
        StringpassWord="highgo";
        Connectionconn=null;
        Sessionsess=null;
        try
        {
          conn=newConnection(hostName,port);
          conn.connect();
          conn.authenticateWithPassword(userName,passWord);
          logger.info("登录成功啦");
          if(conn!=null)
          {      
            sess=conn.openSession();
            logger.info(sess.toString());
            Stringcommand="ipconfig";
            sess.execCommand(command);
            logger.info("executecmd="+command);
            InputStreamstdout=newStreamGobbler(sess.getStdout());
            BufferedReaderbr=newBufferedReader(newInputStreamReader(stdout));
            while(true)
            {
              Stringline=br.readLine();
              if(line==null)
              {
                break;
              }
              logger.info(line);
            }
            IntegerexecResult=sess.getExitStatus();
            logger.info(execResult);
            logger.info(execResult==null?"执行结果:Null":(execResult.intValue()==0?"执行结果:成功":"执行结果:失败"));
          }
        }catch(IOExceptione)
        {
          logger.error(e);
          e.printStackTrace();
        }finally
        {
          if(sess!=null)
          {
            sess.close();
          }
          if(conn!=null)
          {
            conn.close();
          }
        }
      }

    Stringhostname="192.168.0.80";
      intport=22;
      Stringusername="Administrator";
      Stringpassword="nihao";
      //指明连接主机的IP地址
      Connectionconn=newConnection(hostname,port);
      Sessionssh=null;
      try{
       //连接到主机
       conn.connect();
       //使用用户名和密码校验
       booleanisconn=conn.authenticateWithPassword(username,password);
       if(!isconn){
        System.out.println("用户名称或者是密码不正确");
       }else{
        System.out.println("OK");
        ssh=conn.openSession();
        ssh.execCommand("ipconfig");
        //将Terminal屏幕上的文字全部打印出来
        InputStreamis=newStreamGobbler(ssh.getStdout());
        BufferedReaderbrs=newBufferedReader(newInputStreamReader(is));
        while(true){
         Stringline=brs.readLine();
         if(line==null){
          break;
         }
         System.out.println(line);
        }
       }
      }catch(Throwablee){
       e.printStackTrace();
      }finally{
       ssh.close();
       conn.close();
      }

    基本和你一样,但是还是报错

    freessh安装的环境是64位windows,客户端工具xshell都连不上

    换成32位windows,安装freessh,是可以运行以上代码的网友们,该问题已解决!以上代码没问题,只要配好ssh服务即可。你好,我也遇到了同样的问题,请问如何解决的,多谢
    0 0
相关问答

0

回答

请问java性能问题:如何优化向HashMap插入元素的速度?

2021-11-12 17:18:18 133浏览量 回答数 0

0

回答

请问java中使用BigDecimal计算操作性能最优的做法是什么?

2021-11-07 15:42:19 209浏览量 回答数 0

1

回答

java性能问题:有没有比较字符串是否相等的最快方法?

2021-11-06 16:21:40 166浏览量 回答数 1

0

回答

您好java性能问题:有没有比较字符串是否相等的最快方法?

2021-11-07 00:39:14 140浏览量 回答数 0

1

回答

java性能问题:如何优化向HashMap插入元素的速度?

2021-11-06 15:41:34 209浏览量 回答数 1

0

回答

请问java中常用的性能调优诊断工具都有哪些,请帮忙提供一下?

2021-11-06 22:35:44 85浏览量 回答数 0

1

回答

java中常用的性能调优诊断工具都有哪些,请帮忙提供一下?

2021-11-06 10:24:39 153浏览量 回答数 1

1

回答

java中使用BigDecimal计算操作性能最优的做法是什么?

2021-11-06 16:35:15 224浏览量 回答数 1

1

回答

java中ArrayBlockingQueue与DoubleBufferedQueue哪个性能更高?

2021-11-06 21:47:49 203浏览量 回答数 1

1

回答

java中DoubleBufferedQueue与ArrayBlockingQueue哪个性能更高?

2021-11-06 21:50:01 183浏览量 回答数 1
+关注
爱吃鱼的程序员
https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
2
文章
21564
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载