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小时内删除。