文档章节

Jsch ssh登陆

年少爱追梦
 年少爱追梦
发布于 2017/04/05 15:44
字数 269
阅读 39
收藏 0

                                                          Jsch ssh登陆

package com.xxxx;

import com.jcraft.jsch.*;

import java.io.BufferedReader;
import java.io.InputStreamReader;

/**
 * Created by xxx on 2017/4/5.
 */
public class JshMain {
    public static void main(String args[]){
        JSch jsch = new JSch();
        try {
            // Create and connect session.
            Session session = jsch.getSession("root", "192.168.60.225", 22);
            session.setPassword("xxxx");
            session.setUserInfo(new MyUserInfo());
            session.connect();

            // Create and connect channel.
            Channel channel = session.openChannel("exec");
            ((ChannelExec) channel).setCommand("ls");

            channel.setInputStream(null);
            BufferedReader input = new BufferedReader(new InputStreamReader(channel
                    .getInputStream()));

            channel.connect();
            System.out.println("The remote command is: " + "ls");

            // Get the output of remote command.
            String line;
            while ((line = input.readLine()) != null) {
                System.out.println(line);
            }
            input.close();

            // Get the return code only after the channel is closed.
            //if (channel.isClosed()) {
              //  returnCode = channel.getExitStatus();
            //}

            // Disconnect the channel and session.
            channel.disconnect();
            session.disconnect();
        } catch (JSchException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }



    }

}



class MyUserInfo implements UserInfo {
    private String password;

    private String passphrase;

    @Override
    public String getPassphrase() {
        System.out.println("MyUserInfo.getPassphrase()");
        return null;
    }

    @Override
    public String getPassword() {
        System.out.println("MyUserInfo.getPassword()");
        return null;
    }

    @Override
    public boolean promptPassphrase(final String arg0) {
        System.out.println("MyUserInfo.promptPassphrase()");
        System.out.println(arg0);
        return false;
    }

    @Override
    public boolean promptPassword(final String arg0) {
        System.out.println("MyUserInfo.promptPassword()");
        System.out.println(arg0);
        return false;
    }
    //本方法是一个关键的问题,返回true就可以
    @Override
    public boolean promptYesNo(final String arg0) {
        System.out.println("MyUserInfo.promptYesNo()");
        System.out.println(arg0);
        if (arg0.contains("The authenticity of host")) {
            return true;
        }
        return false;
    }

    @Override
    public void showMessage(final String arg0) {
        System.out.println("MyUserInfo.showMessage()");
    }
}

无密码登陆

jsch = new JSch();
        try {
            session = jsch.getSession("admin", host, 22);
            String privateKey = "~/.ssh/id_rsa";
            jsch.addIdentity(privateKey);
            java.util.Properties config = new java.util.Properties();
            config.put("StrictHostKeyChecking", "no");
            session.setConfig(config);
            session.connect();
        } catch (Exception e){
            //log.error("",e);
            baseResult.setData(e);
            return baseResult;
        }

 

© 著作权归作者所有

共有 人打赏支持
年少爱追梦
粉丝 33
博文 185
码字总数 118529
作品 0
杭州
程序员
私信 提问
java 通过ssh 执行命令

java 里面的开源 ssh lib 1、Jsch 2、SSHJ jsch 例子 sshj 例子

seno
2018/12/21
0
0
SFTP报错,JSchException: Algorithm negotiation fail

各位大神,SFTP连接报错,怎么解决,求指导 com.jcraft.jsch.JSchException: Algorithm negotiation fail at com.jcraft.jsch.Session.receive_kexinit(Session.java:583) ~[jsch-0.1.51.jar......

GreatQing
2016/07/26
875
3
JSch - Java实现的SFTP(文件上传详解篇) 转

JSch是Java Secure Channel的缩写。JSch是一个SSH2的纯Java实现。它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到你自己的应用程序。...

狮子暴走
2014/07/23
0
0
java之Jsch实现Linux的文件上传与下载

  一、JSch是Java Secure Channel的缩写。JSch是一个SSH2的纯Java实现。它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到你自己的应...

小不点丶
2018/01/09
0
0
JDBC通过SSH Tunnel连接MySQL数据库

有时候我们无法直接访问某台数据库,因为没有授权或者ip限制,但是可以通过登陆其他机器来访问,如果这台服务器安装有SSH,就可以方便的在本地通过该服务的端口映射来代理访问数据库。Navic...

cwalet
2013/04/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Navicat怎样导入Excel表格和txt文本的数据

Navicat怎样导入Excel表格和txt文本的数据 2018年07月02日 11:29:11 零碎de記憶 阅读数:2433 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39135287/ar...

linjin200
5分钟前
0
0
使用MaxCompute Java SDK运行安全相关命令

使用MaxCompute Console的同学,可能都使用过MaxCompute安全相关的命令。官方文档上有详细的MaxCompute 安全指南 ,并给出了安全相关语句汇总 。 简而言之, 权限管理 、 列级别访问控制 、 ...

阿里云云栖社区
10分钟前
0
0
中小公司的Java工程师应该如何逆袭冲进BAT?

(1)80% Java工程师都有的迷茫 这篇文章,跟大家聊一聊很多很多很多人问我的一个问题:中小公司的Java工程师应该如何规划准备,才能跳槽进入BAT这类一线互联网公司? 之所以我用了三个 “很...

Java填坑路
11分钟前
1
0
你的应用够安全吗?绿标2.0隐私权限详解

近日,最新一期的《绿色应用达标率调查报告》结果显示,应用在安全方面的通过率仅为57%,相较于其他四项标准通过率最低。其中隐私权限的过度获取是主要原因之一,需要开发者尽快完成整改。 ...

安卓绿色联盟
21分钟前
0
0
使用MaxCompute Java SDK运行安全相关命令

使用MaxCompute Console的同学,可能都使用过MaxCompute安全相关的命令。官方文档上有详细的MaxCompute安全指南,并给出了安全相关语句汇总。 简而言之,权限管理、列级别访问控制、项目空间...

阿里云官方博客
26分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部