linux 使用java编写ssh登陆主机 输入密码登陆并执行命令(jsch)
2016-09-09 16:33
1411 查看
代码转自:http://blog.csdn.net/u014234061/article/details/51445540
场景:在一台linux机器A上连接另一台linux机器B,并在B上执行命令(此处是调用B上的jar)。
需要使用的jar包:jsch-0.1.54.jar
这个jar我上传在:http://download.csdn.net/detail/gogogogood/9626370
具体代码:
场景:在一台linux机器A上连接另一台linux机器B,并在B上执行命令(此处是调用B上的jar)。
需要使用的jar包:jsch-0.1.54.jar
这个jar我上传在:http://download.csdn.net/detail/gogogogood/9626370
具体代码:
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(); } } }
相关文章推荐
- 使用ssh-keygen命令生成密钥对无密码远程登陆linux主机
- java 使用 ssh 及 scp等 linux 命令、服务,输入密码免打断
- Linux下使用SSH非交互式远程执行命令脚本---ssh无密码登陆
- java使用ssh连接Linux并执行命令
- 在 Linux 命令行脚本中执行 sudo 等命令时自动输入密码(使用expect)
- java 使用jsch 远程链接linux执行命令
- shell中使用ssh登陆到另一台主机后执行相应的命令
- 使用expect实现ssh自动输入密码,从而自动登陆Linux
- java使用ssh连接Linux并执行命令
- 使用pexpect提供的SSH模块登陆linux,并执行命令
- java 使用jsch 远程链接linux执行命令
- ssh 登陆linux主机不需要输入密码方法
- ssh登陆命令行中输入密码并且远程执行命令
- Java 使用SSH连接Linux 使用passwd命令修改密码
- shell中使用ssh登陆到另一台主机后执行相应的命令
- java 使用jsch 远程链接linux执行命令
- SSH不输入密码连接远程Linux主机
- 不输入密码ssh直接登录阿里云Linux主机
- 采用JSCH实现对linux远程操作(SSH协议),实现在远程linux机器上执行相关的命令
- SSH不输入密码连接远程Linux主机