[原文地址:http://andrius.miasnikovas.lt/2009/07/ssh-with-java/]
最近,我需要做一些基于SSH-2协议操纵服务器的Java客户端程序。有相当多Java的SSH库可以选择。通常我喜欢尽可能使用BSD许可,所以我想我将会用Ganymed的SSH-2作为尝试。它很简单易用。下面是一个简短的例子如何连接到服务器使用的私钥,并执行一些命令。
如果你不熟悉通过SSH公钥/私钥认证,请参阅下面的链接或谷歌搜索“无密码的ssh登录”。
http://ariadne.mse.uiuc.edu/Cluster/ssh_log_through.html
http://www.debian-administration.org/articles/152
大多数教程不会提到的一件事是,你的宿主目录应该有权限755。通过反复试验,我发现一些用户的主目录有777权限,只是不让你登陆一个私钥。
另一件事,我需要做的是复制一个文件到服务器。现在,这给了我一些意想不到的问题。虽然API似乎很简单,但是下面的代码没有任何效果。
Stringdata
="sample
data";
SFTPv3Client client
=newSFTPv3Client
(conn
);
SFTPv3FileHandle handle
=client.
createFile("test_file.txt");byte[]arr
=data.
getBytes();
client.
write(handle,
0,
arr,
0,
arr.
length);
client.
closeFile(handle
);
client.
close();
在这里,conn对象是用于获取SSH连接,如第一段代码块所示。这看起来很简单,在服务器上创建一个文件,写一些字节,然后关闭,但是运行的结果只是在服务器上创建文件,但它始终是0字节的长度。我花了一段时间来弄清楚是什么错。现在是时候提到我用的是他们的网页上提供的“最新版本”Ganymed - build210。这让我很苦恼,代码没有按我希望的正常运行让我很沮丧,我开始查看Ganymed源码,我发现在SFTPv3Client类中的write(...)方法有一个不可满足的条件语句。我解决了这个问题,重新编译Ganymed的类库并可以运行。再后来我发现,实际上已经有一个Ganymed
build211版,但他们又改了库名为trilead。在这个MAVEN2存储库中,你可以找到它(http://maven.ch.cam.ac.uk/m2repo/com/trilead/ssh2/build211/)。
编辑:2011-10-17
我已经创建了一个Maven项目,一个非常简单的类通过SSH使用Trilead库实现执行shell命令。Maven配置包含所需的库和依赖编译这个类的标签。只需使用MVN包里面提取的目录或创建你的IDE的项目文件。如果您需要更多的帮助与Maven入门指南这是一个很好的开始。
分享到:
相关推荐
javaSSH框架javaSSH框架javaSSH框架javaSSH框架
J2SSH(Java SSH API )使用文档 J2SSH(Java SSH API )使用文档 J2SSH(Java SSH API )使用文档
Java SSH框架整合,分分钟学会!!
Web应用大型实验报告-基于ssh的java-web网站设计.pdfWeb应用大型实验报告-基于ssh的java-web网站设计.pdfWeb应用大型实验报告-基于ssh的java-web网站设计.pdfWeb应用大型实验报告-基于ssh的java-web网站设计.pdfWeb...
在线考试系统+论文+源码 jsp ssh mvc java web j2ee bs 毕业设计
SSH_JAVA_API合集,一次找全,拿来分享!
完整的企业人力资源管理系统(SSH+java开发)
trilead ssh2 for java 有文档和example的
java ssh整合包java ssh整合包java ssh整合包java ssh整合包
JAVA SSH 所有架包JAVA SSH 所有架包JAVA SSH 所有架包JAVA SSH 所有架包JAVA SSH 所有架包JAVA SSH 所有架包JAVA SSH 所有架包
java在线考试系统SSH框架源代码
网络商城+论文+源码 购物系统jsp ssh mvc java web j2ee毕业设计
Java ssh 经典Java项目源码,人事管理系统
基于SSH做在线考试系统,里面有论文 ,源码
ssh2 java web 主流框架 整合
Java中使用SSHA对数据进行加密, LDAP-SHA加密与解析.
基于SSH框架的Java语言在线考试系统,该系统主有管理员,教师,学生三类用户,实现的考试题型有:选择,填空,读程序写结果三类题型。配置文件和数据库文件都有,可以配置并运行。
Java三大框架SSH框架,实现增删改查分页上传下载,是个很好的学习示例!
Java面试资料(最全面的java面试题库SSH) Java面试资料(最全面的java面试题库SSH)
JAVA项目之SSH编码规范JAVA项目之SSH编码规范JAVA项目之SSH编码规范JAVA项目之SSH编码规范JAVA项目之SSH编码规范JAVA项目之SSH编码规范JAVA项目之SSH编码规范