详解Ganymed SSH-2模拟SSH操作方法

来源:爱站网时间:2019-09-06编辑:网友分享
在Java程序中执行shell命令时,常用的是Ganymed包,其实当我们有了这个功能,就可以在网页上操作一堆命令,下面爱站技术频道小编就带大家来了解下详解Ganymed SSH-2模拟SSH操作方法吧!

在Java程序中执行shell命令时,常用的是Ganymed包,其实当我们有了这个功能,就可以在网页上操作一堆命令,下面爱站技术频道小编就带大家来了解下详解Ganymed SSH-2模拟SSH操作方法吧!

简介:
Ganymed SSH-2 for Java is a library which implements the SSH-2 protocol in pure Java (tested on J2SE 1.4.2 and 5.0). It allows one to connect to SSH servers from within Java programs. It supports SSH sessions (remote command execution and shell access), local and remote port forwarding, local stream forwarding, X11 forwarding, SCP and SFTP. There are no dependencies on any JCE provider, as all crypto functionality is included.

程序:

 

        @Test
        public void testSsh() {
                String hostname = "192.168.0.1";
                String username = "root";
                String password = "password";
                try {
                        /* Create a connection instance */
                        Connection conn = new Connection(hostname);
                        /* Now connect */
                        conn.connect();
                        System.out.println("connect ok");
                        /*
                         * Authenticate. If you get an IOException saying something like
                         * "Authentication method password not supported by the server at this stage."
                         * then please check the FAQ.
                         */
                        boolean isAuthenticated = conn.authenticateWithPassword(username,password);
                        if (isAuthenticated == false)
                                throw new IOException("Authentication failed.");

                        System.out.println("Authentication ok");
                        /* Create a session */
                        Session sess = conn.openSession();
                        sess.execCommand("uname -a");
                        System.out.println("Here is some information about the remote host:");
                        /*
                         * This basic example does not handle stderr, which is sometimes
                         * dangerous (please read the FAQ).
                         */
                        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);
                        }
                        /* Show exit status, if available (otherwise "null") */
                        System.out.println("ExitCode: " + sess.getExitStatus());
                        /* Close this session */
                        sess.close();
                        /* Close the connection */
                        conn.close();
                } catch (IOException e) {
                        e.printStackTrace(System.err);
                        System.exit(2);
                }
        }


运行结果:

 

 

 


connect ok
Authentication ok
Here is some information about the remote host:
Linux localhost.localdomain 2.6.22 #1 SMP Wed Aug 13 11:24:59 CST 2008 i686 i686 i386 GNU/Linux
ExitCode: 0

详解Ganymed SSH-2模拟SSH操作方法,只要掌握了一定专业知识和技巧,相信在实践操作的时候还是能运用自如的,更多的Java编程知识尽在爱站技术频道!

上一篇:详解spring mvc对异步请求的处理

下一篇:java连接mysql数据库详细步骤解析

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载