2013-10-28 78 views
0

我已經使用JSch類創建了java程序。程序成功執行(ls, cd, change)命令。這些命令需要任何輸入。但是在執行/usr/ses/b/kr命令時,它需要密碼與使用java的linux服務器進行交互JSCH

您可以請回復我怎樣才能發送密碼到Linux服務器使用JSch。或者還有別的辦法嗎?

((ChannelExec)channel).setCommand("/usr/ses/b/kr;"); 

回答

-1

您應該設置StrictHostKeyChecking屬性「no」,並且通道應該設置爲shell.as以下。

String username = "xxxyyyzzz"; 
    String password = "aaabbbccc"; 
    String host  = "192.168.1.1"; // sample ip address 
    if(command.getText().toString() != ""){ 
     JSch jsch = new JSch(); 
     try { 
      session = jsch.getSession(username, host, 22); 
      session.setPassword(password); 

      Properties properties = new Properties(); 
      properties.put("StrictHostKeyChecking", "no"); 
      session.setConfig(properties); 
      session.connect(30000); 

      channel = session.openChannel("shell"); 
      channel.setInputStream(bais); 
      channel.setOutputStream(baos); 
      channel.connect(); 

     } catch (JSchException e) { 
      // TODO Auto-generated catch block 
     } 
    } 
    else{ 
     // 
    } 
+0

請問可以告訴bais的數據類型以及bais和baos的初始值是否可變。 –

+0

沒關係,你可以使用channel.setInputStream(System.in); channel.setOutputStream(System.out);改爲 。 –

+0

我根據建議進行了更改,不顯示任何內容。我想執行命令/ usr/ses/b/kr;以密碼爲輸入。感謝您的回覆 –