importjava.io.InputStream;importjava.io.OutputStream;importjava.nio.charset.Charset;importorg.apache.commons.io.IOUtils;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importcom.jcraft.jsch.Channel;importcom.jcraft.jsch.ChannelExec;importcom.jcraft.jsch.JSch;importcom.jcraft.jsch.Session;public classSSHClientTest {private Logger logger =LoggerFactory.getLogger(getClass());/*** 直接执行命令*/
public voidexec() {
JSch jsch= newJSch();try{
Session session= jsch.getSession("root", "192.168.101.35", 22);
MyUserInfo ui= newMyUserInfo();
ui.setPassword("omcomc");
session.setUserInfo(ui);
session.connect();
String cmd= "ps -ef|grep -v grep|grep java";
Channel channel= session.openChannel("exec");
((ChannelExec) channel).setCommand(cmd);
InputStream in=channel.getInputStream();
OutputStream out=channel.getOutputStream();
((ChannelExec) channel).setErrStream(System.err);
channel.connect();
out.flush();
logger.info(IOUtils.toString(in, Charset.forName("utf-8")));
channel.disconnect();
session.disconnect();
}catch(Exception e) {
logger.error("", e);
}
}/*** sudo + cmd的形式*/
public voidexecWithSudo() {
JSch jsch= newJSch();try{
String password= "testuser1";
Session session= jsch.getSession("omc", "192.168.101.35", 22);
MyUserInfo ui= newMyUserInfo();
ui.setPassword(password);
session.setUserInfo(ui);
session.connect();
String cmd= "sudo -S -p '' systemctl start sasHandler";
Channel channel= session.openChannel("exec");
((ChannelExec) channel).setCommand(cmd);
InputStream in=channel.getInputStream();
OutputStream out=channel.getOutputStream();
((ChannelExec) channel).setErrStream(System.err);
channel.connect();
out.write((password+ "\n").getBytes());
out.flush();
logger.info(IOUtils.toString(in, Charset.forName("utf-8")));
channel.disconnect();
session.disconnect();
}catch(Exception e) {
logger.error("", e);
}
}
}