精华内容
下载资源
问答
  • java调用ssh远程执行指令,先查询进程号再启动进程。 检验程序是否重启成功 调用查询进程号的代码查看是否重启成功,怎样调用。
  • JAVA调用ssh命令

    2019-08-03 01:05:50
    NULL 博文链接:https://yingbin920.iteye.com/blog/1987296
  • JAVA调用SSH脚本

    2018-02-02 14:55:24
    MAVEN pom.xml ch.ethz.ganymed ganymed-ssh2 build210 代码实现 package com.yisa.wifi.zookeeper; import java.io.BufferedReader; import java.io.IOException; import java.

    MAVEN

    pom.xml

        <dependency>
            <groupId>ch.ethz.ganymed</groupId>
            <artifactId>ganymed-ssh2</artifactId>
            <version>build210</version>
        </dependency>

    代码实现

    package com.yisa.wifi.zookeeper;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    
    import ch.ethz.ssh2.Connection;
    import ch.ethz.ssh2.SCPClient;
    import ch.ethz.ssh2.Session;
    import ch.ethz.ssh2.StreamGobbler;
    
    /**
     * @Description: TODO(用一句话描述该文件做什么)
     *
     *
     * @author 作者: GAOXL
     * @version 创建时间:2017年1月4日 下午2:51:06
     * @copyright 公司名称:Yisa
     * @version V1.0
     */
    public class shellUtil {
    
        private static final String HOSTNAME = "bigdata4";
        
        private static final  int PORT = 22;
        
        private static final String USERNAME = "root";
        
        private static final String PASSWORD = "yisa_om";
        
        /**
         * @param args
         */
        public static void main(String[] args) {
            
            Connection conn = getConnection();
            
            upFile(conn);
            
            runSH(conn);
    
        }
        
        /*
         * 获取连接
         */
        public static Connection getConnection(){
            
            Connection conn = null;
            
            try {
                
                conn = new Connection(HOSTNAME, PORT);
                
                conn.connect();
                
                boolean isConn = conn.authenticateWithPassword(USERNAME, PASSWORD);
                
                if(!isConn){
                    
                    System.out.println("连接服务器失败!用户名或者密码错误!" + "用户名 : " + USERNAME + "密码  : " + PASSWORD);
                    
                    return null;
                }
                
                System.out.println("连接服务器成功!");
                
            } catch (IOException e) {
                e.printStackTrace();
            }
            
            
            return conn;
        }
        
        /*
         * 上传文件
         */
        public static void upFile(Connection conn){
            
            SCPClient clt = null;
            
            try {
                
                clt = conn.createSCPClient();
                
                clt.put("d:\\create_zk_config.txt", "/");
                
                System.out.println("上传文件成功!");
                
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if(conn != null){
                    conn.close();
                }
            }
            
        }
        
        /*
         * 执行远程sh脚本
         */
        public static void runSH(Connection conn){
            
            Session ssh = null;
            
            // 执行命令
            try {
                ssh = conn.openSession();
                
                ssh.execCommand("sh /t.sh");
                //只允许使用一行命令,即ssh对象只能使用一次execCommand这个方法,多次使用则会出现异常.  
                //使用多个命令用分号隔开 
                //ssh.execCommand("cd /root; sh hello.sh");
                
                // 将Terminal屏幕上的文字全部打印出来
                InputStream is = new StreamGobbler(ssh.getStdout());
                
                BufferedReader br = new BufferedReader(new InputStreamReader(is));
                
                while(true){
                    
                    String line = br.readLine();
                    
                    if(line == null || "".equals(line)){
                        break;
                    }
                    
                    System.out.println("脚本执行结果 :" + line);
                }
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                
                if(ssh != null){
                    ssh.close();
                }
                
                if(conn != null){
                    conn.close();
                }
            }
            
            
        }
    }
    
    


    展开全文
  • Java使用SSH远程访问Windows并执行命令

    千次阅读 2018-01-24 15:40:06
    转载自:Java使用SSH远程访问Windows并执行命令--博主angel_xiaa 这种方法只是一种,还有通过windows的telent,以及其他,不做介绍 windows由于没有默认的ssh server,因此在允许ssh之前需要先安装ssh server。 ...

    转载自:Java使用SSH远程访问Windows并执行命令--博主angel_xiaa

    这种方法只是一种,还有通过windows的telent,以及其他,不做介绍

    windows由于没有默认的ssh server,因此在允许ssh之前需要先安装ssh server。

    这里用到freeSSHd,下载地址http://www.freesshd.com/?ctt=download

    直接执行freeSSHd.exe就可以进行安装了(用户一定要有管理员权限)

    安装过程中freeSSHd会问你:

    Private keys should be created. Should I do it now?穿件私钥,点是即可

    Do you want to run FreeSSHd as a system service?作为系统服务,点是即可

    安装完成

    双击桌面freesshd图标(桌面或开始菜单),不会直接打开配置界面,而是需要在任务栏的“显示隐藏图标”处右键freessh图标,选择setting。

    添加用户


    点击Users,点击add


    填写内容之后,保存即可

    开启服务

    切换到Server status 菜单

    开启这两个即可。
    在开启SSH server的时候,如果报错提示“ the specified address is already in use
    这是因为在安装的时候,“ Do you want to run FreeSSHd as a system service?”选择了“是”导致的,打开系统服务,
    停掉FreeSSHService服务即可,然后返回setting面板,开启那两个即可

    java连接示例(未验证)

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    
    import ch.ethz.ssh2.Connection;
    import ch.ethz.ssh2.Session;
    import ch.ethz.ssh2.StreamGobbler;
    
    public class SSHWindows {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		 String hostname ="192.168.30.10";
    	        String username="administrator";
    	        String password="Talent123";
    	        try{
    	            //建立连接
    	            Connection conn= new Connection(hostname);
    	       //     System.out.println("set up connections");
    	            conn.connect();
    	            //利用用户名和密码进行授权
    	            boolean isAuthenticated = conn.authenticateWithPassword(username, password);
    	            if(isAuthenticated ==false)
    	            {
    	       //     	System.out.println("--------");
    	                throw new IOException("Authorication failed");
    	            }
    	            //打开会话
    	            Session sess = conn.openSession();
    	        //    System.out.println("cmd----");
    	            //执行命令
    	            sess.execCommand("ruby C:\\WhatWeb-master\\whatweb --output-xml http://216.139.147.75:443/");
    	       //     System.out.println("The execute command output is:");
    	            InputStream stdout = new StreamGobbler(sess.getStdout());
    	            BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
    	            while(true)
    	            {
    	                String line = br.readLine();
    	                if(line==null) break;
    	                System.out.println(line);
    	            }
    	         //   System.out.println("Exit code "+sess.getExitStatus());
    	            sess.close();
    	            conn.close();
    	       //     System.out.println("Connection closed");
    	            
    	        }catch(IOException e)
    	        {
    	            System.out.println("can not access the remote machine");
    	        }
    	    }
    
    
    }
    
    


    以上代码依赖于ssh2的jar包。下载地址:http://www.ganymed.ethz.ch/ssh2/




    展开全文
  • JAVA调用SSH命令

    万次阅读 2006-08-17 14:29:00
    (1) SSH命令使用手册SSH 的详细使用方法如下:ssh [-l login_name] [hostname | user@hostname] [command] ssh [-afgknqtvxCPX246] [-c blowfish | 3des] [-e escape_char] [-i identity_file] [-l login_name] ...
      
    
    (1)       SSH命令使用手册
    SSH 的详细使用方法如下:
    ssh [-l login_name] [hostname | user@hostname] [command] ssh [-afgknqtvxCPX246] [-c blowfish | 3des] [-e escape_char] [-i identity_file] [-l login_name] [-o option] [-p port] [-L port:host:hostport] [-R port:host:hostport] [hostname | user@hostname] [command]
    sshd
    为执行 ssh 的 daemon,在读者使用 ssh 之前必须去激活 sshd,在此建议把它加在 /etc/init/rc.local 中,在每次开机时激活。
    在执行 sshd 之前可以指定它的 port,例如:sshd –p 999
    若有安装 SSL,可以指定 SSL 的 port 443,例如:sshd –p 443
    这样就可以经过 SSL 及 SSH 双重的保护,但必须去指明使用的 port
    ssh –l user –p 443 mouse.oit.edu.tw 才行,若不指明则仍然使用预设的port 22
    ssh
    选项:
    -l login_name
    指定登入于远程机器上的使用者,若没加这个选项,而直接打 ssh lost 也是可以的,它是以读者目前的使用者去做登入的动作。例如: ssh –l shie mouse.oit.edu.tw
    -c blowfish|3des
    在期间内选择所加密的密码型式。预设是 3des,3des(作三次的资料加密) 是用三种不同的密码键作三次的加密-解密-加密。 blowfish 是一个快速区块密码编制器,它比3des更安全以及更快速。
    -v
    Verbose 模式。使ssh 去印出关于行程的除错讯息,这在连接除错,认 证和设定的问题上有很的帮助。
    -V
    显示版本。
    -a
    关闭认证代理联机。
    -f
    要求 ssh 在背景执行命令,假如ssh要询问密码或通行证,但是使用者 想要它在幕后执行就可以用这个方式,最好还是加上-l user 例如在远程场所上激活 X11,有点像是 ssh –f host xterm 。
    -e character
    设定跳脱字符。
    -g
    允许远程主机去连接本地指派的 ports。
    -i identity_file
    选择所读取的 RSA 认证识别的档案。预设是在使用者的家目录 中的 .ssh/identity 。
    -n
    重导 stdin 到 /dev/null (实际上是避免读取 stdin)。必须当 ssh 在幕后执行时才使用。常见的招数是使用这选项在远程机器上去执行 X11 的程序 例如,ssh -n shadows.cs.hut.fi emacs &amp;,将在 shadows.cs.hut.fi 上激活 emace,并且 X11 连接将自动地在加密的信道上发送。ssh 程序将把它放 在幕后。(假如ssh需要去询问密码时,这将不会动作)
    -p port
    连接远程机器上的 port。
    -P
    使用非特定的 port 去对外联机。如果读者的防火墙不淮许从特定的 port去联机时,就可以使用这个选项。注意这个选项会关掉 RhostsAuthentication 和 RhostsRSAAuthentication。
    -q
    安静模式。把所有的警告和讯息抑制,只有严重的错误才会被显示。
    -t
    强制配置 pseudo-tty。这可以在远程机器上去执行任意的 screen-based 程 式,例如操作 menu services。
    -C
    要求压缩所有资料 (包含 stdin, stdout,stderr 和 X11 和 TCP/IP 连接) 压缩演算规则与 gzip 相同,但是压缩的等级不能控制。在调制解调器或 联机速度很慢的地方,压缩是个很好的选择,但如果读者的网络速路很 快的话,速度反而会慢下来。
    -L listen-port:host:port
    指派本地的 port 到达端机器地址上的 port。
    -R listen-port:host:port
    指派远程上的 port 到本地地址上的 port。
    -2 强制 ssh 去使用协议版本 2。
    -4 强制 ssh 去使用 IPv4 地址。
    -6 强制 ssh 去使用 IPv6 地址。
    scp
    使用 scp 在远程机器上 copy 档案
    例如:
    copy 本地的档案到远程的机器上
    scp /etc/lilo.conf k@net67.ee.oit.edu.tw:/home/k
    会将本地的 /etc/lilo.conf 这个档案 copy 到 net67.ee.oit.edu.tw,使用者 k 的家目录下。
    copy远程机器上的档案到本地来
    scp k@net67.ee.oit.edu.tw:/etc/lilo.conf /etc
    会将 net67.ee.oitdu.tw 中 /etc/lilo.conf 档案 copy 到本地的 /etc 目录下。
    保持从来源 host 档案的属性
    scp –p k@net67.ee.tw:/etc/lilo.conf /etc
    在此必须注意使用者的权限是否可读取远程上的档案,若想知道更多关于 scp 的使用方法,可去看看 scp 的使用手册。
    ssh-keygen
    产生公开钥 (pulib key) 和私人钥 (private key),以保障 ssh 联机的安性, 当 ssh 连 shd 服务器,会交换公开钥上,系统会检查 /etc/ssh_know_hosts 内储存的 key,如果找到客户端就用这个 key 产生一个随机产生的session key 传给服务器,两端都用这个 key 来继续完成 ssh 剩下来的阶段。
     
    它会产生 identity.pub、identity 两个档案,私人钥存放于identity,公开钥存放于 identity.pub 中,接下来使用 scp 将 identity.pub copy 到远程机器的家目录下.ssh下的authorized_keys。 .ssh/authorized_keys(这个 authorized_keys 档案相当于协议的 rhosts 档案),之后使用者能够不用密码去登入。RSA的认证绝对是比 rhosts 认证更来的安全可靠。
    执行:
    scp identity.pub k@linux1.ee.oit.edu.tw:.ssh/authorized_keys
     
    若在使用 ssh-keygen 产生钥匙对时没有输入密码,则如上所示不需输入密码即可从 net67.ee.oit.edu.tw 去登入 linux1.ee.oit.edu.tw。在此,这里输入的密码可以跟帐号的密码不同,也可以不输入密码。
    (2)       JAVA与SSH的交互
    由于在使用 SSH命令时,中间要求输入用户密码,在设计JAVA程序时如果用Runtime的exec方法进行交互,经查证不可行。不过http://www.ganymed.ethz.ch/ssh2/提供了调用ssh和scp命令的jar,通过把用户名和密码传入api中就不需要用户介入输入密码。
    package com.corp.prj.util;
     
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
     
    import org.apache.log4j.Logger;
     
    import ch.ethz.ssh2.Connection;
    import ch.ethz.ssh2.SCPClient;
    import ch.ethz.ssh2.Session;
    import ch.ethz.ssh2.StreamGobbler;
     
    /**
     * Provides static methods for running SSH, scp as well as local commands.
     *
     */
    public class CommandRunner {
     private static final Logger logger = Logger.getLogger(CommandRunner.class);
     
     private CommandRunner() {
     }
     
     /**
      * Get remote file through scp
       * @param host
       * @param username
       * @param password
       * @param remoteFile
       * @param localDir
       * @throws IOException
       */
     public static void scpGet(String host, String username, String password,
          String remoteFile, String localDir) throws IOException {
        if (logger.isDebugEnabled()) {
          logger.debug("spc [" + remoteFile + "] from " + host + " to " + localDir);
        }
        Connection conn = getOpenedConnection(host, username, password);
        SCPClient client = new SCPClient(conn);
        client.get(remoteFile, localDir);
        conn.close();
     }
     
     /**
       * Put local file to remote machine.
       * @param host
       * @param username
       * @param password
       * @param localFile
       * @param remoteDir
      * @throws IOException
       */
     public static void scpPut(String host, String username, String password,
          String localFile, String remoteDir) throws IOException {
        if (logger.isDebugEnabled()) {
          logger.debug("spc [" + localFile + "] to " + host + remoteDir);
        }
        Connection conn = getOpenedConnection(host, username, password);
        SCPClient client = new SCPClient(conn);
        client.put(localFile, remoteDir);
        conn.close();
     }
     
     /**
       * Run SSH command.
       * @param host
       * @param username
       * @param password
       * @param cmd
       * @return exit status
       * @throws IOException
       */
     public static int runSSH(String host, String username, String password,
          String cmd) throws IOException {
        if (logger.isDebugEnabled()) {
          logger.debug("running SSH cmd [" + cmd + "]");
        }
     
        Connection conn = getOpenedConnection(host, username, password);
        Session sess = conn.openSession();
        sess.execCommand(cmd);
     
        InputStream stdout = new StreamGobbler(sess.getStdout());
        BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
     
        while (true) {
          // attention: do not comment this block, or you will hit NullPointerException
          // when you are trying to read exit status
          String line = br.readLine();
          if (line == null)
            break;
          if (logger.isDebugEnabled()) {
            logger.debug(line);
          }
        }
     
        sess.close();
        conn.close();
        return sess.getExitStatus().intValue();
     }
     
     /**
       * return a opened Connection
       * @param host
       * @param username
       * @param password
       * @return
       * @throws IOException
       */
     private static Connection getOpenedConnection(String host, String username,
          String password) throws IOException {
        if (logger.isDebugEnabled()) {
          logger.debug("connecting to " + host + " with user " + username
              + " and pwd " + password);
        }
     
        Connection conn = new Connection(host);
        conn.connect(); // make sure the connection is opened
        boolean isAuthenticated = conn.authenticateWithPassword(username,
            password);
        if (isAuthenticated == false)
          throw new IOException("Authentication failed.");
        return conn;
     }
     
     /**
       * Run local command
       * @param cmd
       * @return exit status
       * @throws IOException
       */
     public static int runLocal(String cmd) throws IOException {
        if (logger.isDebugEnabled()) {
          logger.debug("running local cmd [" + cmd + "]");
        }
     
        Runtime rt = Runtime.getRuntime();
        Process p = rt.exec(cmd);
     
        InputStream stdout = new StreamGobbler(p.getInputStream());
        BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
     
        while (true) {
          String line = br.readLine();
          if (line == null)
            break;
          if (logger.isDebugEnabled()) {
            logger.debug(line);
          }
     
        }
        return p.exitValue();
     }
    }
     
    展开全文
  • 正常想查看进程号是下面的代码: session.execCommand("ps -ef | grep /home/upload/aaa/aa.jar "); 但是文件夹名字aaa和文件aa.jar 都是作为参数得到的, 就是我先上传这个文件,然后再启动它查询他的...
  • 七、java调用ssh往远程linux上传文件

    千次阅读 2017-03-27 16:02:43
    1.导入maven依赖jar包 ... jsch 0.1.44-1 2.创建SSH2Util类 package com.ksy.fw.base.util; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamR

    原文地址,转载请注明出处: http://blog.csdn.net/qq_34021712/article/details/66972672     ©王赛超

    1.导入maven依赖jar包

    <!-- https://mvnrepository.com/artifact/com.jcraft/jsch -->
    		<dependency>
    		    <groupId>com.jcraft</groupId>
    		    <artifactId>jsch</artifactId>
    		    <version>0.1.44-1</version>
    		</dependency>

    2.创建SSH2Util类

    package com.ksy.fw.base.util;
    
    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    
    import com.jcraft.jsch.Channel;
    import com.jcraft.jsch.ChannelExec;
    import com.jcraft.jsch.ChannelSftp;
    import com.jcraft.jsch.JSch;
    import com.jcraft.jsch.Session;
    import com.jcraft.jsch.UserInfo;
    
    /**
     * java远程上传文件
     * @author lenovo
     *
     */
    public class SSH2Util {
    
    	private String host;
    
    	private String user;
    
    	private String password;
    
    	private int port;
    
    	private Session session;
    
    	/**
    	 * 创建一个连接
    	 * 
    	 * @param host
    	 *            地址
    	 * @param user
    	 *            用户名
    	 * @param password
    	 *            密码
    	 * @param port
    	 *            ssh2端口
    	 */
    	public SSH2Util(String host, String user, String password, int port) {
    		this.host = host;
    		this.user = user;
    		this.password = password;
    		this.port = port;
    	}
    
    	private void initialSession() throws Exception {
    		if (session == null) {
    			JSch jsch = new JSch();
    			session = jsch.getSession(user, host, port);
    			session.setUserInfo(new UserInfo() {
    
    				public String getPassphrase() {
    					return null;
    				}
    
    				public String getPassword() {
    					return null;
    				}
    
    				public boolean promptPassword(String arg0) {
    					return false;
    				}
    
    				public boolean promptPassphrase(String arg0) {
    					return false;
    				}
    
    				public boolean promptYesNo(String arg0) {
    					return true;
    				}
    
    				public void showMessage(String arg0) {
    				}
    
    			});
    			session.setPassword(password);
    			session.connect();
    		}
    	}
    
    	/**
    	 * 关闭连接
    	 * 
    	 * @throws Exception
    	 */
    	public void close() throws Exception {
    		if (session != null && session.isConnected()) {
    			session.disconnect();
    			session = null;
    		}
    	}
    
    	/**
    	 * 上传文件
    	 * 
    	 * @param localPath
    	 *            本地路径,若为空,表示当前路径
    	 * @param localFile
    	 *            本地文件名,若为空或是“*”,表示目前下全部文件
    	 * @param remotePath
    	 *            远程路径,若为空,表示当前路径,若服务器上无此目录,则会自动创建
    	 * @throws Exception
    	 */
    	public void putFile(String localPath, String localFile, String remotePath)
    			throws Exception {
    		this.initialSession();
    		Channel channelSftp = session.openChannel("sftp");
    		channelSftp.connect();
    		ChannelSftp c = (ChannelSftp) channelSftp;
    		String remoteFile = null;
    		if (remotePath != null && remotePath.trim().length() > 0) {
    			try {
    				c.mkdir(remotePath);
    			} catch (Exception e) {
    			}
    			remoteFile = remotePath + "/.";
    		} else {
    			remoteFile = ".";
    		}
    		String file = null;
    		if (localFile == null || localFile.trim().length() == 0) {
    			file = "*";
    		} else {
    			file = localFile;
    		}
    		if (localPath != null && localPath.trim().length() > 0) {
    			if (localPath.endsWith("/")) {
    				file = localPath + file;
    			} else {
    				file = localPath + "/" + file;
    			}
    		}
    		c.put(file, remoteFile);
    
    		channelSftp.disconnect();
    	}
    
    	// public static void main(String[] args) {
    	// Ssh2Util ssh = new Ssh2Util("192.168.1.189", "root", "test" , 22);
    	// try {
    	// String rs = ssh.runCommand("ddddd");
    	// } catch (Exception e) {
    	// e.printStackTrace();
    	// }
    	// }
    	// command 命令
    	public String runCommand(String command) throws Exception {
    		// CommonUtil.printLogging("[" + command + "] begin", host, user);
    
    		this.initialSession();
    		InputStream in = null;
    		InputStream err = null;
    		BufferedReader inReader = null;
    		BufferedReader errReader = null;
    		int time = 0;
    		String s = null;
    		boolean run = false;
    		StringBuffer sb = new StringBuffer();
    
    		Channel channel = session.openChannel("exec");
    		((ChannelExec) channel).setCommand(command);
    		channel.setInputStream(null);
    		((ChannelExec) channel).setErrStream(null);
    		err = ((ChannelExec) channel).getErrStream();
    		in = channel.getInputStream();
    		channel.connect();
    		inReader = new BufferedReader(new InputStreamReader(in, "UTF-8"));
    		errReader = new BufferedReader(new InputStreamReader(err, "UTF-8"));
    
    		while (true) {
    			s = errReader.readLine();
    			if (s != null) {
    				sb.append("error:" + s).append("\n");
    			} else {
    				run = true;
    				break;
    			}
    		}
    		while (true) {
    			s = inReader.readLine();
    			if (s != null) {
    				sb.append("info:" + s).append("\n");
    			} else {
    				run = true;
    				break;
    			}
    		}
    
    		while (true) {
    			if (channel.isClosed() || run) {
    				// CommonUtil.printLogging("[" + command + "] finish: " +
    				// channel.getExitStatus(), host, user);
    				break;
    			}
    			try {
    				Thread.sleep(1000);
    			} catch (Exception ee) {
    			}
    			if (time > 180) {
    				// CommonUtil.printLogging("[" + command + "] finish2: " +
    				// channel.getExitStatus(), host, user);
    				break;
    			}
    			time++;
    		}
    
    		inReader.close();
    		errReader.close();
    		channel.disconnect();
    		session.disconnect();
    		System.out.println(sb.toString());
    		return sb.toString();
    	}
    
    	public static void main(String[] args) throws Exception {
    		SSH2Util ssh2Util = new SSH2Util("127.0.0.1", "root","root", 22);
    		ssh2Util.putFile("C:\\Users\\lenovo\\Desktop", "99999.sh","/usr/ksybak/tomcats");
    	}
    }
    


    展开全文
  • using SSH tunnel in Java throughjsch, a Java an implementation of SSH2 you have to have an SSH account on the remote host, and for the database example, a database account with a"connect"permi...
  • Java使用SSH连接linux主机执行命令

    千次阅读 2019-09-12 15:08:17
    由于最近在做对zookeeper集群状态的监控,了解了一下如何使用java连接linux远程主机并执行shell脚本(或命令) 添加依赖 ssh2的依赖,版本很多,供参考 <!-- ...
  • 之前写过一篇:《JAVA通过SSH方式修改AIX用户密码》通过ganymed-ssh2-build210.jar这个工具连接ssh,其无法执行passwd,原因在于通过该jar建立的连接,没有伪终端。发送的ssh连接命令是:ssh username@ip command;而...
  • import java.io.InputStream; import java.io.OutputStream; import java.util.concurrent.TimeUnit; import com.jcraft.jsch.Channel; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; public cl....
  • java用jsch实现文件传输(SSH形式),但是好像本地和服务器加密方式不一致,一直报错: com.jcraft.jsch.JSchException: Algorithm negotiation fail
  • java使用ssh连接Linux并执行命令

    千次阅读 2017-12-19 11:33:02
    需依赖jcraft的jar包 com.jcraft jsch 0.1.53 import java.io.IOException; import java.io.InputStream; import org.apache.commons.io.IOUtils; import com.jcraft.jsc
  • 在OpenSource项目里找到了Ganymed SSH-2 for Java .下载后有例子,但是没有找到有关交互命令的例子.所以自己探索了一下在网上看有老外讨论用这个如何改密码,基本上的问题都是因为找不到返回的提示Linux修改密码输入...
  • java通过ssh远程调用服务器

    千次阅读 2019-04-16 16:02:18
    1.在大数据时代,服务器使用的频率难免上升,工作中难免会出现频繁使用的时候,有些场景不方便切换到服务器去操作,比如调用一个服务器的命令,但是要在程序里执行,当然不能手动去执行啦,所以java调用ssh就尤为...
  • java通过ssh调用centos7指令,获取磁盘空间使用率、磁盘空间使用情况、网络使用情况,CPU使用率,内存使用
  • java通过ssh操作linux服务器

    万次阅读 2016-12-02 14:44:21
    java使用ssh操作linux
  • java考勤ssh

    2013-11-01 13:32:00
    java+ssh OA系列 考勤管理系统 工资计算
  • java demo ssh

    2013-01-29 08:59:07
    java demo ssh 使用的大部分library
  • java框架ssh

    2013-10-11 20:23:44
    主要是对java框架ssh的简介,框架,即framework。其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。
  • java远程调用ssh

    2019-09-22 16:25:06
    业务系统部署在docker容器中,需要调用fastfdfs服务器命令上传到服务器中,并在系统中记录路径本文引用jsch <!-- https://mvnrepository.com/artifact/com.jcraft/jsch --> <dependency> <...
  • java远程调用ssh2执行Linux命令

    千次阅读 2017-12-18 11:11:00
    java SSH2远程登录Linux服务执行命令前一段时间工作中用到了java远程调用Linux服务器,执行相关命令,因为比较常用,故此,在博客中记录下来。其中用到了ganymed-ssh2这个jar包,可以在...
  • 在本教程中,我们将展示如何使用JSch和Apache MINA SSHD库通过Java与远程SSH服务器建立连接。 在我们的示例中,我们将首先打开SSH连接,然后执行一个命令,读取输出并将其写入控制台,最后关闭SSH
  • java+ssh+oracle

    2011-11-28 14:49:37
    基于java+ssh+oracle的一个移动小项目,适合初学者使用,绝对好用!
  • J2SSH(Java SSH API )使用文档 J2SSH(Java SSH API )使用文档 J2SSH(Java SSH API )使用文档

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 137,247
精华内容 54,898
关键字:

java调用ssh

java 订阅