2013-10-28 3 views
0

나는 JSch 클래스를 사용하여 자바 프로그램을 만들었습니다. 프로그램이 (ls, cd, change) 명령을 성공적으로 실행합니다. 이러한 명령에는 필요한 모든 입력이 필요합니다. 그러나 /usr/ses/b/kr 명령을 실행하는 동안 암호이 필요합니다.자바 서버를 사용하여 리눅스 서버와 상호 작용

JSch을 사용하여 Linux 서버에 암호를 보낼 수있는 방법을 회신 해주십시오. 아니면 다른 방법이 있습니까?

((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

나는 suggest.It로 변경 한 내용을 표시하지 않습니다./usr/ses/b/kr 명령을 실행하고 싶습니다. 암호는 입력으로 사용됩니다. 회신을 보내 주셔서 감사합니다 –