Java利用SSH登录Linux执行命令工具类详解程序员
2023-06-13 09:20:05 时间
public static int execute(String username, String ip, int port, String password, String command)
log.info("进入ShellUtils工具类的execute方法");
int returnCode = 0;
JSch jsch = new JSch();
MyUserInfo userInfo = new MyUserInfo();
List String stdout = new ArrayList ();
try
//创建session并且打开连接,因为创建session之后要主动打开连接
log.info("创建session并且打开连接");
Session session = jsch.getSession(username, ip, port);
session.setPassword(password);
//此处必须设置userInfo
session.setUserInfo(userInfo);
session.connect();
//打开通道,设置通道类型,和执行的命令
log.info("打开通道、执行的命令,command = " + command);
Channel channel = session.openChannel("exec");
ChannelExec channelExec = (ChannelExec)channel;
channelExec.setCommand(command);
channelExec.setInputStream(null);
BufferedReader input = new BufferedReader(new InputStreamReader(channelExec.getInputStream()));
channelExec.connect();
//接收远程服务器执行命令的结果
String line;
while ((line = input.readLine()) != null)
stdout.add(line);
input.close();
//关闭通道
channelExec.disconnect();
//关闭session
session.disconnect();
log.info("执行命令返回 :" + stdout.toString());
catch (Exception e)
log.error("ShellUtils工具类的execute方法执行异常", e);
returnCode = 1;
e.printStackTrace();
return returnCode;
}
import com.jcraft.jsch.UserInfo; public class MyUserInfo implements UserInfo { @Override public String getPassphrase() { // TODO Auto-generated method stub System.out.println("MyUserInfo.getPassphrase()"); return null; @Override public String getPassword() { // TODO Auto-generated method stub System.out.println("MyUserInfo.getPassword()"); return null; @Override public boolean promptPassphrase(String arg0) { // TODO Auto-generated method stub System.out.println("MyUserInfo.promptPassphrase()"); System.out.println(arg0); return false; @Override public boolean promptPassword(String arg0) { // TODO Auto-generated method stub System.out.println("MyUserInfo.promptPassword()"); System.out.println(arg0); return false; @Override public boolean promptYesNo(String arg0) { // TODO Auto-generated method stub System.out.println("MyUserInfo.promptYesNo()"); System.out.println(arg0); if (arg0.contains("The authenticity of host")) { return true; return true; @Override public void showMessage(String arg0) { // TODO Auto-generated method stub System.out.println("MyUserInfo.showMessage()"); }
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/2927.html
服务器部署程序员系统优化网站设置运维相关文章
- 实现Windows客户端通过SSH连接Linux服务器(windows连接linux服务器)
- 优势玩转Linux,享受多大优势(linux系统多大)
- 登录开启Linux安全之门:启用SSH登录(linux允许ssh)
- 技巧Linux环境下提高Java编译效率的技巧(linux下java编译)
- 构建 Linux 中的链接目录(链接目录linux)
- 服务器实现Java远程访问Linux服务器(java远程linux)
- 登录Linux远程登录指南:一步步教你使用SSH远程登录(linux怎么远程)
- Linux系统上最小的浏览器:Midori(linux最小的浏览器)
- Linux串口调试:必要的利器(串口调试linux)
- Java远程登录Linux服务器入门指南(java远程linux)
- 服务Linux开启SSH服务轻松实现远程登录(linux开机启动ssh)
- 通过SSH连接远程Linux服务器(连接远程linux服务器)
- 服务器上的文件Java获取Linux服务器文件:简单又高效的操作方法(java获取linux)
- Linux下安装Java 开发环境指南(linux装java环境)
- 分类Linux:分支类型及其应用(linux的分支)
- 部署Java开发下的Linux部署(java开发linux)
- Linux系统:免费下载体验稳定性能(linux系统下载)
- 使用 SSH 远程访问 Linux 服务器(远程到linux服务器)
- SSH工具——Linux下必备的远程连接神器(ssh工具linux)
- 如何正确安装Linux驱动?(linux驱动安装)
- 如何在Linux上安装Java 7?(linux安装java7)
- 优化Linux系统:探讨显卡交火技术提升计算机性能(linux显卡交火)
- Java运行在Linux系统上免费下载(linux java下载)
- Linux下限制SSH访问权限的实现方法(linux ssh 限制)
- Linux 下安装Java:快速从零开始(linux 下载java)
- Linux下快速配置Java环境变量(linux设置java环境变量)
- 使用JavaScript实现Java的List功能(实例讲解)