java连接远程服务器并执行命令

Posted 长不胖的小男孩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java连接远程服务器并执行命令相关的知识,希望对你有一定的参考价值。

导入必要的jar包

  <dependency>
     <groupId>ch.ethz.ganymed</groupId>
    <artifactId>ganymed-ssh2</artifactId>
    <version>build250</version>
  </dependency>

public static void executeCommand(String command,String host,String username,String password){
		Connection conn = null;
		Session session = null;
		try {
			logger.info("执行linux命令:{},host:{}",command,host);
			conn = new Connection(host);
            conn.connect();
            boolean flg = conn.authenticateWithPassword(username, password);
            if(flg){
            	session = conn.openSession();

                session.requestPTY("bash");
                session.startShell();
                PrintWriter out = new PrintWriter(session.getStdin());
                out.println(command);
                out.flush();
                out.println("exit");
                out.close();
                session.waitForCondition(ChannelCondition.CLOSED | ChannelCondition.EOF | ChannelCondition.EXIT_STATUS,
                        60000);
            }else{
            	logger.info("连接host{}失败",host);
            }
		} catch (IOException e) {
			logger.info("host{}执行命令:{}出现异常"+e,host,command);
		}finally {
			session.close(); 
			conn.close();
		}

	}

  

以上是关于java连接远程服务器并执行命令的主要内容,如果未能解决你的问题,请参考以下文章

python 模拟 ssh 执行远程命令

如何从 Java 应用程序远程执行 Hadoop 命令

ssh远程连接服务器执行命令

ssh远程连接linux服务器并执行命令

Java代码审计之RCE远程命令执行

Paramiko模块,用python代码连接服务器执行命令