Java中com.jcraft.jsch.ChannelSftp讲解
SFTP是Secure File Transfer Protocol的缩写,安全⽂件传送协议。可以为传输⽂件提供⼀种安全的加密⽅法。SFTP 为 SSH的⼀部份,是⼀种传输⽂件到服务器的安全⽅式。SFTP是使⽤加密传输认证信息和传输的数据,所以,使⽤SFTP是⾮常安全的。但是,由于这种传输⽅式使⽤了加密/解密技术,所以传输效率⽐普通的FTP要低得多,如果您对⽹络安全性要求更⾼时,可以使⽤SFTP代替FTP。ChannelSftp类是JSch实现SFTP核⼼类,它包含了所有SFTP的⽅法,如:
put():⽂件上传
get():⽂件下载
cd():进⼊指定⽬录
ls():得到指定⽬录下的⽂件列表
rename():重命名指定⽂件或⽬录
rm():删除指定⽂件
mkdir():创建⽬录
rmdir():删除⽬录
等等(这⾥省略了⽅法的参数,put和get都有多个重载⽅法,具体请看源代码,这⾥不⼀⼀列出。)
⼀个简单的jsch链接并执⾏命令的utils。
1. import java.io.BufferedReader;
2. import java.io.IOException;
3. import java.io.InputStream;
4. import java.io.InputStreamReader;
5.
6. import com.jcraft.jsch.Channel;
7. import com.jcraft.jsch.ChannelExec;
8. import com.jcraft.jsch.JSch;
9. import com.jcraft.jsch.JSchException;
10. import com.jcraft.jsch.Session;
11.
12.
13.
14. public class ShellUtils {
15. private static JSch jsch;
16. private static Session session;
17.
18.
19. /**
20. * 连接到指定的IP
21. *
22. * @throws JSchException
23. */
24. public static void connect(String user, String passwd, String host) throws JSchException {
25. jsch = new JSch();
26. session = Session(user, host, 22);
27. session.setPassword(passwd);
28.
29. java.util.Properties config = new java.util.Properties();
30. config.put("StrictHostKeyChecking", "no");
31. session.setConfig(config);
32.
33. t();
34. }
35.
36. /**
37. * 执⾏相关的命令
38. * @throws JSchException
39. */
40. public static void execCmd(String command, String user, String passwd, String host) throws JSchException {
41. connect(user, passwd, host);
42.
43. BufferedReader reader = null;
44. Channel channel = null;
45.
46. try {
47. while (command != null) {
48. channel = session.openChannel("exec");
49. ((ChannelExec) channel).setCommand(command);
50.
51. channel.setInputStream(null);
java源代码加密52. ((ChannelExec) channel).);
53.
54. t();
55. InputStream in = InputStream();
56. reader = new BufferedReader(new InputStreamReader(in));
57. String buf = null;
58. while ((buf = adLine()) != null) {
59. System.out.println(buf);
60. }
61. }
62. } catch (IOException e) {
63. e.printStackTrace();
64. } catch (JSchException e) {
65. e.printStackTrace();
66. } finally {
67. try {
68. reader.close();
69. } catch (IOException e) {
70. e.printStackTrace();
71. }
72. channel.disconnect();
73. session.disconnect();
74. }
75. }
76.
77. }
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论