【发布时间】:2013-10-28 18:41:13
【问题描述】:
我已经使用 JSch 类创建了 java 程序。程序成功执行 (ls, cd, change) 命令。这些命令需要任何输入。但是在执行/usr/ses/b/kr 命令时,它需要密码。
您能否回复我如何使用 JSch 将密码发送到 linux 服务器。还是有什么别的办法?
((ChannelExec)channel).setCommand("/usr/ses/b/kr;");
【问题讨论】:
我已经使用 JSch 类创建了 java 程序。程序成功执行 (ls, cd, change) 命令。这些命令需要任何输入。但是在执行/usr/ses/b/kr 命令时,它需要密码。
您能否回复我如何使用 JSch 将密码发送到 linux 服务器。还是有什么别的办法?
((ChannelExec)channel).setCommand("/usr/ses/b/kr;");
【问题讨论】:
您应该将 StrictHostKeyChecking 属性设置为“否”,并且应该将通道设置为 shell。如下所示。
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{
//
}
【讨论】: