`
chenchangqun
  • 浏览: 55561 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

ssh 远程执行异常

阅读更多
因为项目要求,需要远程执行命令,maven配置和代码如下

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


public class InvokeShellTest {
     public static void main(String[] args) {  

            String hostname = "10.103.16.16";  
            String username = "sa";  
            String password = "123456";  
            //指明连接主机的IP地址  
            Connection conn = new Connection(hostname,9880);  
            Session ssh = null;  
            try {  
                //连接到主机  
                conn.connect();  
                //使用用户名和密码校验  
                boolean isconn = conn.authenticateWithPassword(username, password);  
                if(!isconn){  
                    System.out.println("用户名称或者是密码不正确");  
                }else{  
                    System.out.println("已经连接OK");  
                    ssh = conn.openSession();  
                    //使用多个命令用分号隔开  
//                    ssh.execCommand("ps -ef|grep java");  
                      ssh.execCommand("sh /opt/ali-rocketmq/devenv/bin/mqadmin consumerProgress -n \"10.103.16.77:9876;10.103.16.15:9876\"");  
  
                    //只允许使用一行命令,即ssh对象只能使用一次execCommand这个方法,多次使用则会出现异常  
 
                    //将屏幕上的文字全部打印出来  
                    InputStream  is = new StreamGobbler(ssh.getStdout());  
                    BufferedReader brs = new BufferedReader(new InputStreamReader(is));  
                    while(true){  
                        String line = brs.readLine();  
                        if(line==null){  
                            break;  
                        }  
                        System.out.println(line);  
                    }  

                }  
                //连接的Session和Connection对象都需要关闭  
                ssh.close();  
                conn.close();  

            } catch (IOException e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            }  

        }  


}

报错
ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! !!

在mqadmin脚本中加入  export JAVA_HOME=/usr/local/java 解决,正常输出结果
分享到:
评论

相关推荐

    ssh远程控制

    "ssh远程控制"这个主题涉及到许多核心概念和技术,下面将进行详细阐述。 1. **SSH协议基础**: SSH通过加密所有传输数据来保护用户隐私,防止中间人攻击。它支持公钥/私钥对认证和密码认证,确保只有授权用户可以...

    net-ssh远程访问linux ruby

    标题中的“net-ssh远程访问linux ruby”指的是Ruby编程语言中使用Net::SSH库来实现对Linux系统的远程访问。Net::SSH是Ruby的一个开源库,它提供了SSH2协议的实现,允许开发者通过SSH协议安全地执行命令、传输文件等...

    【精品小工具】php实现ssh远程连接服务器并操作服务器

    本篇文章将详细介绍如何使用PHP实现SSH远程连接服务器并执行操作。 首先,PHP本身并不直接支持SSH连接,但我们可以通过第三方库如`phpseclib`来实现这个功能。`phpseclib`是一个纯PHP实现的SSH2和SFTP客户端,它...

    ssh远程登陆工具

    SSH远程登录工具的工作原理是通过公共密钥加密技术,使得客户端和服务器之间可以建立安全的通信通道。在这个过程中,用户通常需要在客户端生成一对密钥,即公钥和私钥。公钥会被上传到远程服务器的特定文件(通常是~...

    java_ssh执行命令

    Java SSH 执行命令主要涉及到Java编程语言与SSH(Secure Shell)协议的交互,通常用于远程服务器的管理和自动化任务执行。SSH是一种网络协议,允许用户安全地在不安全的网络上进行远程登录和其他网络服务。在Java中...

    ssh远程多机免密码的方法

    在IT领域,尤其是对于运维工程师、系统管理员和开发人员来说,实现SSH远程多机免密码登录是一项极其重要的技能。这种能力不仅可以提高工作效率,减少重复的手动输入密码动作,还能增强自动化部署、监控和管理的可行...

    浅谈Linux下SSH远程访问技术的应用.pdf

    【SSH远程访问技术详解】 SSH(Secure SHell)是一种网络协议,用于在不安全的网络环境中提供安全的远程登录和文件传输。它在Linux操作系统中广泛应用于系统管理和维护,是替代传统明文传输协议(如Telnet、RSH)的...

    java执行ssh命令

    在Java编程中,执行SSH(Secure Shell)命令是一项常见的任务,尤其在远程服务器管理、自动化运维和分布式系统中。SSH是一种网络协议,用于安全地在远程主机上执行命令和传输数据。下面我们将深入探讨如何在Java中...

    c# SharpSSH执行SSH命令例子

    标题"SharpSSH执行SSH命令例子"表明我们将讨论如何使用SharpSSH库在C#中执行远程Linux服务器的SSH命令。SSH命令行工具是Linux管理员最常用的工具之一,它允许用户在安全的加密连接下执行各种系统管理任务。通过...

    java开发的swing客户端,远程执行linux命令.zip

    本项目“java开发的swing客户端,远程执行linux命令”显然旨在利用Swing构建一个桌面应用,该应用的核心功能是远程控制Linux服务器,执行命令。这涉及到Java中的网络编程和Linux系统的交互。具体来说,开发者可能使用...

    SharpSSH执行SSH命令例子

    这个库使得C#程序员能够执行远程服务器上的SSH命令,进行文件传输,以及其他与SSH相关的操作。本文将深入探讨如何使用SharpSSH来执行SSH命令,以及其背后的原理和技术细节。 首先,了解SSH是至关重要的。SSH是一种...

    ssh集成 ssh集成

    2. **自动化脚本**:在自动化任务中,如Ansible、Puppet或Chef等IT自动化工具,SSH可以用于远程执行命令或脚本,实现服务器的配置和管理。 3. **CI/CD系统**:在Jenkins、Travis CI或GitLab CI等CI/CD工具中,SSH...

    Linuxssh登录远程服务器 expect

    `expect`是TCL的一个扩展,它允许我们编写脚本来自动交互式地控制程序,特别适用于需要通过SSH登录远程服务器并执行命令的情况。 标题"Linux ssh登录远程服务器 expect"直指一个关键的自动化场景:利用`expect`来...

    SSH连接远程服务器的一个简单的工程

    在Java开发中,SSH通常指的是使用Java实现的SSH连接库,如JSch,它允许程序员通过Java代码来实现SSH连接到远程服务器,进行文件传输、命令执行等操作。 本工程名为"SSH连接远程服务器的一个简单的工程",它提供了...

    JAVA代码实现远程操作服务器文件

    Trilead SSH2库提供了对ssh连接的支持,包括连接远程服务器、执行命令、上传和下载文件等操作。通过使用Trilead SSH2库,可以实现远程服务器文件的操作。 3. 实现远程服务器文件的上传、下载、复制、移动、删除等...

    远程执行(跨进程执行指定程序)

    3. **Linux下的远程执行**:在Linux环境中,可以使用`ssh`命令来远程执行命令或脚本。此外,`sudo`命令可以用于提升权限执行程序,而`systemd`服务可以用于后台执行程序。 4. **安全性考虑**:跨进程执行可能会带来...

    SSH.NET-develop.zip_SSH.net_VI1Q_ssh

    2. **会话管理**:打开SSH会话,执行远程命令并获取输出。 3. **SFTP服务**:通过SFTP协议安全地上传、下载和管理远程文件。 4. **SCP服务**:使用SCP协议进行文件传输,类似于FTP,但更安全。 5. **端口转发**:...

    c# asp.net ssh连接到服务器进行命令交互

    SSH(Secure Shell)是一种网络协议,用于安全地远程控制服务器,执行命令或传输数据。PUTTY是一个流行的开源SSH客户端,常用于连接到Linux或Unix系统。在这个场景中,我们将讨论如何使用C#和ASP.NET结合PUTTY来实现...

    dotnet-sshfs可以透过SSH协议将远程文件系统挂载到本地

    3. **挂载操作**:调用相应的API或命令行工具,指定远程路径和本地挂载点,执行挂载操作。挂载成功后,本地系统就会出现一个新的挂载点,可以像操作本地目录一样操作远程文件。 4. **文件操作**:读写远程文件,如...

    dos-shell.zip_cmd执行命令_dos shell 编程_远程DOS_远程执行 cmd

    本文将深入探讨"dos-shell.zip_cmd执行命令"、"dos shell编程"、"远程DOS"以及"远程执行cmd"的相关知识点,并提供关于如何编写和运用这些技术的详细解释。 首先,让我们从CMD(命令提示符)开始,它是Windows操作...

Global site tag (gtag.js) - Google Analytics