一、gradle地址

// https://mvnrepository.com/artifact/com.jcraft/jsch
compile group: 'com.jcraft', name: 'jsch', version: '0.1.54'

二、远程登录实例

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader; import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session; public class SSHHelper {
    /**
     * 远程 执行命令并返回结果调用过程 是同步的(执行完才会返回)
     *
     * @param host
     *            主机名
     * @param user
     *            用户名
     * @param psw
     *            密码
     * @param port
     *            端口
     * @param command
     *            命令
     * @return
     */
    public static String exec(String host, String user,String psw, int port,String command) {
        String result = "";
        Session session = null;
        ChannelExec openChannel = null;
        try {
            JSch jsch = new JSch();
            session = jsch.getSession(user, host, port);
            java.util.Properties config = new java.util.Properties();
            config.put("StrictHostKeyChecking", "no");
            session.setConfig(config);
            session.setPassword(psw);
            session.connect();
            openChannel = (ChannelExec) session.openChannel("exec");
            openChannel.setCommand(command);
            int exitStatus = openChannel.getExitStatus();
            System.out.println(exitStatus);
            openChannel.connect();
            InputStream in = openChannel.getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(in));
            String buf = null;
            while ((buf = reader.readLine()) != null) {
                // result+= new String(buf.getBytes("gbk"),"UTF-8")+" <br>\r\n";
                result += new String(buf.getBytes("gbk"), "UTF-8") + "\r\n";
            }
        } catch (JSchException | IOException e) {
            result += e.getMessage();
        } finally {
            if (openChannel != null && !openChannel.isClosed()) {
                openChannel.disconnect();
            }
            if (session != null && session.isConnected()) {
                session.disconnect();
            }
        }
        return result;
    }     public static void main(String args[]) {
        // String exec = exec("192.168.25.128", "root", "password", 22, "sleep 10;ls;");
        // String exec = exec("192.168.25.128", "root", "password", 22, "fs_cli -x
        // status");
        // String exec = exec("172.18.4.114", "root", "root01", 22, "fs_cli -x status");
        String exec = exec("172.18.4.114", "root", "assr", 22,
                "sshpass -p 'root01' scp /home/test.txt root@172.18.4.125:/home");
        System.out.println("reply:\n" + exec);
    }
}

三、一些涉及二次密码输入的情况

引入新的项目sshpass。

1. 下载及安装

$ wget http://sourceforge.net/projects/sshpass/files/latest/download -O sshpass.tar.gz
$ tar -xvf sshpass.tar.gz
$ cd sshpass-1.06
$ ./configure
# sudo make install

2. 使用示例

sshpass -p 'root123456' scp /home/test.txt root@192.168.4.125:/home

java使用ssh访问Linux的项目jscraft的更多相关文章

  1. java使用ssh连接Linux并执行命令

     方式1:通过设置账号密码和链接地址 maven pom.xml配置: <dependency>         <groupId>com.jcraft</groupId ...

  2. java使用SSH连接Linux系统

    SSH连接linux系统使我们在开发项目中常用到的,现在留下来,做个记录 package com.log; import java.io.BufferedReader; import java.io. ...

  3. .Net使用SSH.NET通过SSH访问Linux主机

    使用了SSH.NET库,添加引用dll至项目,以下代码显示了点击按钮后SSH链接Linux主机执行命令并返回命令执行结果 protected void btnExcute_Click(object s ...

  4. windows10 通过ssh访问 linux

    安装openssh服务 Win10其实自带OpenSSH 没有的话,点击上面的添加找到并安装 在服务里设置对应服务开机启动 添加服务器到已知主机 ssh-keygen -R 你的服务器ip 连接Lin ...

  5. ITerm2下使用ssh访问Linux

    通常情况下,iTerm2访问远程Linux使用ssh,与Termial基本一样,方法如下: ssh <用户名>@<ip> 然后输入访问的密码即可.当然还有的时候需要指定访问端口 ...

  6. 用Putty通过SSH访问Linux服务器

    1,sudo apt-get install ssh 2,sudo service ssh restart 3,重启ssh成功后,就可以直接用Putty访问服务器.

  7. java实现ssh登录linux服务器并下发命令

    依赖jar包:jsch-0.1.55.jar   commons-io-2.5.jar import com.jcraft.jsch.ChannelExec; import com.jcraft.js ...

  8. Java ssh 访问windows/Linux

     Java ssh 访问windows/Linux 工作中遇到的问题: Java code运行在一台机器上,需要远程到linux的机器同时执行多种命令.原来采用的方法是直接调用ssh命令或者调用pli ...

  9. 搭建Java服务器,并且实现远程安全访问linux系统

    1.通过ssh实现安全远程访问linux系统        ssh :secure shell         加密:       1. 对称加密 (加密密钥与解密密钥相同)          des ...

随机推荐

  1. JQuery巧妙利用CSS操作打印样式

    一.添加打印样式 1. 为屏幕显示和打印分别准备一个css文件,如下所示:  用于屏幕显示的css: <link rel="stylesheet" href="cs ...

  2. 即时通讯之smack客户端配置

    之前学习了通过Openfire+spark+smack的模式来完成我们的即时通讯软件,上次我们已经完成了Openfire的安装和配置,这次我们继续完成我们的客户端部分. 1.首先我们通过百度smack ...

  3. 【架构】SpringCloud 注册中心、负载均衡、熔断器、调用监控、API网关示例

    示例代码: https://github.com/junneyang/springcloud-demo 参考资料: SpringCloud系列 Eureka 一句话概括下spring框架及spring ...

  4. Ubuntu下安装Hadoop

    终于把Hadoop的环境给配好了.在美国的第一个周末,非常的折腾,电脑坏了,一开机windows动画过后屏幕就没显示,无语死了,在想着人生地不熟的,哪里去找人修电脑,还好一个舍友说看到隔壁街有个PC ...

  5. System.Windows.Forms.Control : Component, IOleControl, IOleObject, IOleInPlaceObject, IOleInPlaceActiveObject....

    #region 程序集 System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ...

  6. mac 终端 使用 gnu coreutils 工具 ls 颜色显示

    mac 终端默认 ls 命令无颜色显示: 1: 使用 ls -G 可以显示基本颜色 2:使用 gnu coreutils 工具 mac 终端 使用 gnu coreutils 工具 ls 颜色显示 以 ...

  7. wepy - 与原生有什么不同(slot插槽)

    wepy官方文档是这样介绍的 简单描述就是: index.wpy:子组件 panel.wpy:父组件 1.slot是内容分发的占位符 2.slot父组件在子组件使用时,名称必须一致 3.slot子组件 ...

  8. Java从零开始学二十七(NumberFormat类)

    一.NumberFormat表示数字的格式化类 NumberFormat表示数字的格式化类,即:可以按照本地的风格习惯进行数字的显示. No. 方法 类型 描述 1 public static Loc ...

  9. mkdir命令(转)

    原文:http://www.cnblogs.com/peida/archive/2012/10/25/2738271.html linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户 ...

  10. 霍纳法则(Horner Rule)介绍及C语言实现

    参考自:http://flynoi.blog.hexun.com/31272178_d.html 霍纳法则简介 假设有n+2个实数a0,a1,-,an,和x的序列,要对多项式Pn(x)= anxn+a ...