`
csyqbtlsz
  • 浏览: 24509 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用SSH连接LINUX

    博客分类:
  • Java
阅读更多

最近项目上决定使用华为的NAS,不得不说,华为的NAS照NetApp比起来,差距还是挺大的,至少NetApp提供了非常全面的各种语言实现的API,而且文档也非常的全面,可以非常容易的嵌入我们的系统中。而华为只有可怜的N8000命令行,并没有提供任何语言实现的API,这无疑给开发带来了很大的麻烦。最后商议决定,程序通过SSH协议远程执行华为的命令行。上网上简单看了一下,比较出名的第三方开源框架是JSCH,虽然网上已经有很多文章说明此框架的用法,但是在开发过程中仍然有一些小细节需要注意,特此Share一下,代码如下:

 

 

JSch jsch = new JSch();
String command = "storage pool free";
String host = "10.121.43.7";
String name = "master";
int port = 22;
String password = "!Q@W#E$R%T";
Session session = jsch.getSession(name,host, port);
Properties config = new Properties(); 
//设置不做检查
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
//设置密码
session.setPassword(password);
session.connect();
ChannelExec shell = (ChannelExec)session.openChannel("exec");
shell.setEnv("SFS_OUTPUT","xml");
shell.setCommand(command);
shell.connect();
InputStream inputStream = shell.getInputStream();
int index = -1;
byte[] buffer = new byte[1024];
ByteArrayOutputStream out = new ByteArrayOutputStream();
while(!shell.isClosed()){
	while((index = inputStream.read(buffer, 0, buffer.length))!=-1){
		out.write(buffer, 0, index);
	}
	try {
            Thread.sleep(500);
	} catch (InterruptedException e) {
		e.printStackTrace();
	}
}
out.flush();
out.close();
inputStream.close();
shell.disconnect();
session.disconnect();
String resultXml = new String(out.toByteArray());
System.out.println(resultXml);

 需要注意的是代码的第十六行,此参数用于设置SSH协议的环境,华为的存储这点就比较恶心,如果不设置这个变量,那么默认给你返回的是文本,而不是XML,当初在这个位置上卡了好久,希望日后能方便众人。

 

 

分享到:
评论

相关推荐

    ssh连接linux系统的工具

    本篇文章将深入探讨SSH连接Linux系统的工具——SecureCRT和SecureFX Portable。 **SecureCRT** SecureCRT是一款强大的终端模拟器,它支持多种协议,包括SSH1、SSH2、Telnet、Rlogin和Serial。以下是一些关键功能和...

    远程ssh连接工具MobaXterm,完全免费,可以拖动传输文件,及教程汇总

    用户可以通过MobaXterm在Windows操作系统下连接并操作Linux服务器。 MobaXterm的主要特点包括: 界面友好,使用方便,支持更换皮肤。 支持多种连接方式,如SSH、X11、RDP、VNC、FTP等。 内置SFTP文件传输功能,...

    ssh连接linux实现上传下载实例及包

    本篇将详细讲解如何使用SSH连接Linux系统实现文件的上传和下载,并提供相关的实例。 首先,要建立SSH连接,你需要在本地计算机上有一个SSH客户端。对于Windows用户,可以使用PuTTY,而对于Mac和Linux用户,内置的...

    Mac下使用SSH连接远程Linux服务器

    本文主要介绍三种方法,在Mac下使用SSH连接远程Linux服务器。 方法一:使用终端 1.打开终端,点击新建远程连接 2.点击加号,然后添加自己服务器的IP地址 3.点击右侧的服务器,然后在下方输入用户名,选择最下方的 ...

    ssh 远程连接Linux工具

    ssh工具 用于连接远程服务器 linux 系统 解压 安装即可使用

    ssh连接linux客户端

    ssh连接linux客户端,可以帮助更好的从windows连接linux

    putty(ssh连接Linux的工具,很好用)

    9. 链接其他应用程序:PuTTY可以通过plink命令行工具与其他程序集成,例如在Git Bash或其他脚本中使用SSH连接。 10. 串行端口支持:除了SSH,PuTTY还可以通过串行端口连接设备,如调试硬件或配置路由器。 PuTTY的...

    连接Linux服务器工具SSH

    连接Linux服务器工具SSH 3.2.9 方便快捷!

    java实现ssh方式连接linux(包含ganymed-ssh2-build210.jar包)

    java实现ssh方式连接linux(包含ganymed-ssh2-build210.jar包) ---------Java语言+绚丽的界面+仿ssh实现调用Linux的Terminal,实现远程连接linux进行命令行的操作!

    pscp远程ssh连接linux系统进行文件操作的程序

    远程ssh连接linux系统进行文件操作的程序

    ssh 连接Linux系统工具

    SSH连接Linux系统的工具主要包括以下几个核心知识点: 1. **SSH协议原理**:SSH基于公钥/私钥加密机制,分为两个阶段:身份验证和会话建立。身份验证阶段,客户端使用服务器的公钥对一个随机字符串进行加密并发送,...

    SSH连接Linux系统的文件便捷移动工具

    SSH连接Linux系统的文件便捷移动工具,极大地简化了用户在本地计算机和远程Linux服务器之间的文件操作流程。 首先,SSH提供了命令行界面的`scp`(Secure Copy)命令,用于在本地和远程主机之间安全地复制文件。例如...

    Windows远程SSH连接Linux服务器(xmanager说明书)

    本文档介绍了使用 Xmanager 在 Windows 平台下远程连接 Linux 服务器的方法,包括 shell 连接、图形界面连接和 ssh 文件传输连接。下面是详细的知识点解释: 一、Xmanager 简介 Xmanager 是一款功能强大且功能丰富...

    SSH远程连接linux服务器工具

    标题中的"SSH远程连接linux服务器工具"指的是使用SSH协议来远程访问Linux服务器的软件工具。SSH协议提供了身份验证和加密功能,确保了用户与服务器之间的通信不会被窃听或篡改。这对于管理和维护远程服务器尤其重要...

    C#版SSH、SCP,可作为客户端连结LINUX源码

    标题中的"C#版SSH、SCP,可作为客户端连结LINUX源码"表明这是一个使用C#编程语言实现的SSH(Secure Shell)和SCP(Secure Copy)客户端库,用于连接Linux服务器。SSH是一种网络协议,用于安全地远程登录到服务器,...

    SSH 连接工具

    标题中提到的“SSH连接工具”主要指的是用于SSH通信的应用程序,它允许用户通过加密的方式与远程Linux服务器进行交互。这些工具可以实现安全的远程终端会话、文件传输、脚本自动化等功能,确保数据的安全性,防止...

    ssh连接Linux的利器

    标题“ssh连接Linux的利器”表明我们将深入探讨SSH在连接Linux系统时的强大功能。 SSH的原理是通过加密技术建立一个安全的隧道,确保在网络中传输的数据不被窃取或篡改。它取代了早期不安全的远程登录协议,如...

    自制ssh连接管理脚本 linux

    自制ssh连接管理脚本 linux

    SSH linux连接工具

    本文将详细介绍SSH以及在Windows环境下使用的两款经典SSH连接工具——PuTTY和SecureCRT。 1. SSH基础 SSH通过加密技术确保数据在传输过程中的安全性,避免了明文传输可能导致的数据泄露。它支持命令行界面的远程...

    ssh 连接linux服务器的工具

    一款非常好用的连接linux系统的工具 操作非常简单

Global site tag (gtag.js) - Google Analytics