以下两种方法可以指定 主机地址,用户名,密码,端口号(port)
本机是windows,也可以连接的远程linux执行shell命令
如远程重启另一台weblogic
1.查看进程号
2.kill -9 进程号
3.启动weblogic
可能会存在open files的问题(如果过堡垒机的也要设置好)
linux修改最大文件链接数open files
http://happyqing.iteye.com/blog/1953563
第一种 Ganymed SSH-2 for Java
据说Ganymed比jsch强大,能写出一些高级的东西
下载地址
http://www.ganymed.ethz.ch/ssh2/
ganymed-ssh2-build210.zip 包中有样例
样例:
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 Basic { public static void main(String[] args) { String hostname = "127.0.0.1"; String username = "joe"; String password = "joespass"; try { /* Create a connection instance */ Connection conn = new Connection(hostname, 22); /* Now connect */ conn.connect(); /* 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."); /* Create a session */ Session sess = conn.openSession(); sess.execCommand("uname -a && date && uptime && who"); 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); } } }
Connection conn = new Connection(hostname, 22);
在第二个参数可设置端口(port)
用Ganymed,不用设置什么加密算法,似乎也不用保存主机秘钥。
第二种 jsch
下载地址
com.jcraft.jsch 所需jar包
样例
http://www.jcraft.com/jsch/examples/
网摘样例
package com.codeconch.ssh; 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; /** * SSH工具类 * @author 赵聪慧 * 2013-4-7 */ 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"; } } 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.1.254", "root", "123456", 22, "sleep 20;ls;"); System.out.println(exec); } }
看起来挺简单的,
貌似是在redhat6.7及以后有加密算法的问题,需要在目标机做配置,
Algorithm negotiation fail com.jcraft.jsch.JSchException: Algorithm negotiation fail at com.jcraft.jsch.Session.receive_kexinit(Session.java:520) at com.jcraft.jsch.Session.connect(Session.java:286) at com.jcraft.jsch.Session.connect(Session.java:150)
使用Ganymed SSH-2 for Java则不存在此问题
相关推荐
SSH(Secure Shell)则是一种网络协议,用于在不安全的网络环境中安全地执行远程命令和传输数据。在Linux系统中,SSH常用于远程登录、文件传输等操作,它使用加密技术确保通信的安全性。SSH Secure Shell客户端工具...
SSH,全称Secure Shell,是一种网络协议,用于在不安全的网络环境中提供安全的远程登录和其他服务。在IT行业中,SSH常被用来管理和控制服务器,执行命令,传输文件等。这个"ssh--blog.zip_blog ssh_java blog_java ...
SSH(Secure Shell)是一种网络协议,用于安全地远程登录到服务器,执行命令和传输数据。在这个解决方案中,shell脚本会通过SSH连接到其他服务器,进行文件传输和执行远程操作。 SCP(Secure Copy)是基于SSH的安全...
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。在Java开发中,SSH通常指的是Spring、Struts和Hibernate这三个框架的组合,它们是构建企业级Web应用的常用技术栈。这个"SSH...
Java、SSH和JSP技术都是计算机领域中非常重要的技术,Java是一种面向对象的语言,SSH是一种安全的远程登录协议,JSP是一种基于Java的服务器端脚本语言。它们在计算机领域中的应用非常广泛,例如开发基于Web的应用...
在IT领域,SSH(Secure Shell)是一种网络协议,用于在不安全的网络上安全地执行远程命令和传输数据。这个“Rapid SSH例子”可能是指使用SSH进行快速开发或自动化操作的一个示例。SSH通常与Linux和Unix系统相关联,...
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。在Java中,SSH框架通常指的是Struts2、Spring和Hibernate的组合,这是一个流行的MVC(模型-视图-控制器)架构模式,用于...
【SSH2CRM】是一个基于Java开发的客户关系管理(CRM)系统,其核心特性是集成了Secure Shell(SSH)框架,用于提供安全的远程访问和管理功能。SSH框架在这里指的是Struts2、Spring和Hibernate这三个开源Java框架的...
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。在Java开发中,SSH通常指的是Spring、Struts和Hibernate这三个开源框架的组合,它们一起构建了Java企业级应用的基本架构。...
同时,这个系统在开发或部署过程中涉及到了SSH(Secure Shell)协议,用于远程管理和安全性连接。 【描述】"培训时做的办公系统 SSH+jbpm+Mysql+tomcat" 揭示了这个项目是在培训环境中完成的,其核心技术栈包括SSH...
标题中的"ssh-src.rar_SSH文件上传_java googlemap_ssh_文件上传下载"表明这是一个关于SSH(Secure Shell)文件上传功能的项目,结合Java技术和Google Map的实现。SSH是一种网络协议,用于安全地远程登录和传输文件...
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。这个SSH例子是一个初学者入门SSH框架的实践项目,它包括了四个基本的数据操作:添加(Add)、删除(Delete)、修改(Modify...
在IT行业中,SSH(Secure Shell)是一种网络协议,用于安全地远程登录到服务器,执行命令,传输文件等。它提供了一种加密的方式,确保数据在传输过程中不被窃取或篡改。`oConvertUtils`可能是一个自定义的Java工具...
SSH2(Secure Shell 2)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。在本场景中,"SSH2登录功能"指的是使用SSH2协议来实现远程服务器的身份验证和数据传输。SSH2提供了加密的通信通道,确保...
1. **SSH(Secure Shell)**:SSH是一种网络协议,用于在不安全的网络上安全地执行远程命令和传输数据。它提供了加密网络服务,例如远程登录、文件传输等,是Linux和Unix系统中广泛使用的工具。 2. **JS...
2. 命令行交互:SSH允许用户在远程主机上执行命令,如同在本地操作一样。 3. 文件传输:SSH支持安全的文件传输,使用sftp或scp命令。 4. 端口转发:SSH可以用于隧道端口,将本地端口连接到远程服务器,提高安全性。 ...
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。在Java中,SSH常指的是Struts2、Spring和Hibernate这三个开源框架的组合,它们一起构建了强大的企业级Web应用开发平台。...
SSH(Secure Shell)是一种安全的远程登录协议,提供了强大的身份验证和加密功能。SSH协议可以帮助保护网站的安全,防止未经授权的访问。在毕业论文jsp878通用精品课程网站ssh中,SSH协议被用作网站的安全保护机制。...
移动SSH项目是一个基于Struts、Spring、Hibernate和Oracle技术栈的企业级Java Web应用,它为企业提供了一套完整的移动端SSH(Secure Shell)解决方案。项目具有高度可定制性,可以根据客户需求进行二次开发和定制。...