1. 导入依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
<dependency>
<groupId>ch.ethz.ganymed</groupId>
<artifactId>ganymed-ssh2</artifactId>
<version>262</version>
</dependency>
2. 代码实现
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;
import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
@SpringBootTest
public class ssh2 {
public Connection login() {
String ip = "192.168.0.1";
String usr = "root";
String psword = "root";
Connection conn = new Connection(ip);
try {
conn.connect();
boolean res = conn.authenticateWithPassword(usr, psword);
System.out.println(res);
return conn;
} catch (IOException e) {
System.err.printf("用户密码登录服务器失败!", usr, psword, ip);
e.printStackTrace();
}
return null;
}
public int exec(Connection conn, String cmds) {
InputStream stdOut = null;
InputStream stdErr = null;
int ret = -1;
try {
Session session = conn.openSession();
session.execCommand(cmds, "UTF-8");
InputStream is = new StreamGobbler(session.getStdout());
BufferedReader brs = new BufferedReader(new InputStreamReader(is));
System.out.println(brs.readLine());
InputStream is1 = new StreamGobbler(session.getStderr());
BufferedReader brs1 = new BufferedReader(new InputStreamReader(is1));
System.out.println(brs1.readLine());
session.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
return ret;
}
@Test
public void test() {
String cmd = "service kudu-tserver status";
Connection conn = login();
exec(conn, cmd);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律