java远程连接shell

JSch是SSH2协议的纯Java实现,允许开发者连接到sshd服务器,支持端口转发、X11转发和文件传输等功能。这篇博客介绍了如何在Java程序中集成JSch,提供了连接SSH服务器、上传文件和执行命令的简单示例代码。JSch库可在BSD许可下使用,可以从SourceForge获取。
摘要由CSDN通过智能技术生成

Jsch 简介

JSch - Java 安全通道
JSch 是SSH2的纯 Java 实现 。
JSch 允许您连接到 sshd 服务器并使用端口转发、X11 转发、文件传输等,您可以将其功能集成到您自己的 Java 程序中。JSch 是在BSD 风格许可下获得许可的。
官网:http://www.jcraft.com/jsch/
demo地址:http://www.jcraft.com/jsch/examples

引用

下载zip:https://sourceforge.net/projects/jsch/files/jsch/0.1.55/jsch-0.1.55.zip/download
下载jar:https://sourceforge.net/projects/jsch/files/jsch.jar/0.1.55/jsch-0.1.55.jar/download

<dependency>
  <groupId>com.jcraft</groupId>
  <artifactId>jsch</artifactId>
  <version>0.1.55</version>
</dependency>

简单demo

import com.jcraft.jsch.*;
import org.apache.commons.io.IOUtils;
import java.util.Properties;
public class Demo {
	/* 连接connect */
	public static Session(String ip, String userName, String password) {
		JSch jsch = new JSch();
		//默认端口22
		Session session = jsch.getSession(userName, ip, 22);
		//ssh 有一个非交互方式登录 StrictHostKeyChecking
		//StrictHostKeyChecking=no 最不安全的级别,当然也没有那么多烦人的提示了,相对安全的内网测试时建议使用。
		Properties config = new Properties();
		config.setProperty("StrictHostKeyChecking", "no");
		session.setConfig(config);
		session.setPassword(password);
		session.connect();
		return session;
	}
	
	/* 上传文件*/
	public static void uploadFile(Session session, String localPath, String remotePath) throws Exception {
		ChannelSftp channel = (ChannelSftp)session.openChannel("sftp");
		channel.connect();
		channel.put(localPath, remotePath);
	}
	
	/* 执行命令 */
	public static void execCommand(Session session, String command) throws Exception{
		ChannelExec channel = (ChannelExec)session.openChannel("exec");
		InputStream in = channel.getInputStream();
		channel.setCommand(command);
		channel.setErrStream(System.err);
		channel.connect();
		String result = IOUtils.toString("utf-8");
		System.out.println(result);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值