JSch (Java Secure Channel)是纯Java的SSH2实现。可以把它集成到你的Java应用中来连接sshd服务器,执行指令(port forward, file transfer, terminal emulation)。Ant、Eclipse-CVSSSH2、NetBeans等工具都在使用它。如果你的服务部署在linux服务器中,有时你需要执行一些系统命令,这时候需要用到Runtime.getRuntime().exec("java -version"); 但是这样会让你的服务器内存瞬间增长很多。JSch基于JavaTM Cryptography Extension(JCE)通过Socket来实现通信,可以大大减少内存的暴涨。
http://www.jcraft.com/
版本:jsch-0.1.51.jar
SSH例子:
public void ssh() throws Exception {
JSch jsch = new JSch();
// connect session
Session session = jsch.getSession(USER_ID, HOST_NAME, 22);
session.setPassword(PASSWORD);
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
// exec command remotely
String command = "ls -l";
ChannelExec channel = (ChannelExec) session.openChannel("exec");
channel.setCommand(command);
channel.connect();
// get stdout
InputStream in = channel.getInputStream();
byte[] tmp = new byte[1024];
while (true) {
while (in.available() > 0) {
int i = in.read(tmp, 0, 1024);
if (i < 0)
break;
System.out.print(new String(tmp, 0, i));
}
if (channel.isClosed()) {
System.out.println("exit-status: " + channel.getExitStatus());
break;
}
try {
Thread.sleep(1000);
} catch (Exception ee) {
}
}
channel.disconnect();
session.disconnect();
}
SFTP例子:
public void sftp() throws Exception {
JSch jsch = new JSch();
// connect session
Session session = jsch.getSession(USER_ID, HOST_NAME, 22);
session.setPassword(PASSWORD);
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
// sftp remotely
ChannelSftp channel = (ChannelSftp) session.openChannel("sftp");
channel.connect();
// ls
Vector list = channel.ls(".");
System.out.println("---- ls");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
// lstat
try {
SftpATTRS stat = channel.lstat("index.html");
System.out.println("---- lstat");
System.out.println(stat);
System.out.println(stat.getSize());
} catch (SftpException ex) {
ex.printStackTrace();
}
// get
channel.get("./index.html", "./index.html.dst");
// put
channel.put(new FileInputStream("c:/test.txt"), "test_new.txt");
channel.disconnect();
session.disconnect();
}
其他的工具还有:
Ganymed SSH-2:
https://code.google.com/p/ganymed-ssh-2/
sshj :
https://github.com/shikhar/sshj
Apache SSHD:
http://mina.apache.org/sshd-project/
分享到:
相关推荐
linux下使用expect自动登录ssh/scp函数,参考使用,供学习交流
在本篇内容里小编给大家整理了关于bash脚本中将密码传递给ssh/scp命令的相关方法和知识点,需要的朋友们学习下。
这需要用于 Java 的开源 Ganymed SSH-2,它可以免费获得并自动包含在 zip 文件中。 对于 SFTP-GET,必须使用包含的与 Matlab 兼容的自定义 Ganymed SSH-2 Java 库。 有关文档,请参阅 ssh2-examples.m。 如需支持...
在java里可以通过Ganymed SSH-2, Expect4j等实现ssh登录,由于Ganymed SSH-2是纯java实现,并且可以实现scp,sftp等,因此我们采用Ganymed SSH-2 1> 下载安装 从http://code.google.com/p/ganymed-ssh-2/ 下载,...
FCP/SCP/AFC及其他相同底层的快充协议的解码器,用于DSView/DSLogic。Python编写。
模板化执行命令示例 [$]send[su - root] [Password:]password[123456] [#]send[cd /etc] [#]send[] [#]send[] [#]send[exit] [$]send[exit] 具体模板参数意义下载解压缩后查看batch.list中有解释
使用ssh、scp不需要密码。刚好项目遇到这个问题,学学挺好的。
在A上运行命令:# ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码)# ssh root@192.168.60.110 “mkdir .ssh; chmod 0700 .ssh” (需要输入密码)# scp ~/.ssh/id_rsa.pub root@192.168.60....
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.rpmsave rm -rf /etc/ssh/sshd_config mv /etc/ssh/sshd_config.rpmnew /etc/ssh/sshd_config vim /etc/ssh/sshd_config #新加入一行: PermitRootLogin yes # 保存 ...
sshj:用于Java的ssh,scp和sftp
Linux下SSH及SCP命令简单使用,如果通过ssh远程到其他linux机器、通过scp命令进行文件传输
ant运行scp以及sshexec任务所必须的jar包,这是optional的,所以ant默认不会有的,需要自己加上
Scripts目录下含多个应用例子,窗体测试(WinAPI)、Web测试(WatiN)、WebAPI测试、LinuxSSH和SCP等。 3)命令行调用支持: IronPythonTest.exe -log logPath ;执行命令后输出日志全路径,默认Log/ -py filePath ;...
(b) 自动化测试、自动任务均可以通过python脚本实现,工具集成解析器和调用执行,封装应用包括:linux ssh连接和scp,WinAPI、Web测试等。 (c) 可以不断扩展添加python或.net开源dll,在python脚本中调用。 (3)...
(b) 自动化测试、自动任务均可以通过python脚本实现,工具集成解析器和调用执行,封装应用包括:linux ssh连接和scp,WinAPI、Web测试等。 (c) 可以不断扩展添加python或.net开源dll,在python脚本中调用。 (3)...
SSH-SCP使用方法 ,如何不使用密码在服务器之间传输文件
SIMATIC NET 网络组件 收发器 SFP/SFP /SCP/STP - 操作说明[手册]pdf,
此版本的 SSH 和 SFTP/SCP 功能支持公钥认证。 SSH 的公钥身份验证,SFTP/SCP 已合并到 David Freedman 的旧版本原始包中,称为“SSH From Matlab(更新)+ SFTP/SCP”(文件夹名称“sshfrommatlab_12”)。