linux 使用java编写ssh登陆主机 输入密码登陆并执行命令(jsch)详解程序员

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.nio.charset.Charset; 
import java.util.Properties; 
 
import com.jcraft.jsch.ChannelExec; 
import com.jcraft.jsch.JSch; 
import com.jcraft.jsch.JSchException; 
import com.jcraft.jsch.Session; 
public class Main { 
    public static void main(String[] args) throws JSchException, IOException { 
        JSch jsch = new JSch(); // 创建JSch对象 
        String userName = "xiaoguo";// 用户名 
        String password = "password";// 密码 
        String host = "10.37.56.78";// 服务器地址 
        int port = 22;// 端口号 
        String cmd = "java -cp /home/xiaoguo/hehe.jar Main";// 要运行的命令 
        Session session = jsch.getSession(userName, host, port); // 根据用户名,主机ip,端口获取一个Session对象 
        session.setPassword(password); // 设置密码 
        Properties config = new Properties(); 
        config.put("StrictHostKeyChecking", "no"); 
        session.setConfig(config); // 为Session对象设置properties 
        int timeout = 60000000; 
        session.setTimeout(timeout); // 设置timeout时间 
        session.connect(); // 通过Session建立链接 
        ChannelExec channelExec = (ChannelExec) session.openChannel("exec"); 
        channelExec.setCommand(cmd); 
        channelExec.setInputStream(null); 
        channelExec.setErrStream(System.err); 
        channelExec.connect(); 
        InputStream in = channelExec.getInputStream(); 
        BufferedReader reader = new BufferedReader(new InputStreamReader(in, Charset.forName("UTF-8"))); 
        String buf = null; 
        StringBuffer sb = new StringBuffer(); 
        while ((buf = reader.readLine()) != null) { 
            sb.append(buf); 
            System.out.println(buf);// 打印控制台输出 
        } 
        reader.close(); 
        channelExec.disconnect(); 
        if (null != session) { 
            session.disconnect(); 
        } 
    } 
}

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/2929.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论