JSchクラスを使用して Java プログラムを作成しました。プログラムは ( ls, cd, change
) コマンドを正常に実行します。これらのコマンドは入力を必要としません。ただし、/usr/ses/b/kr
コマンドの実行中にパスワードが必要です。
JSchを使用して Linux サーバーにパスワードを送信する方法を教えてください。それとも別の方法がありますか?
((ChannelExec)channel).setCommand("/usr/ses/b/kr;");
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{
//
}