本文简单介绍用SSH库ganymed-ssh2在Android中实现scp操作。
SSH
SSH是专为远程登录会话和其他网络服务提供安全性的协议,简单的说就是一种网络协议。是linux的标准配置。用于linux设备之间的通讯。
SCP
SCP是一种基于SSH完成加密拷贝文件的协议。使用SSH进行身份认证确保数据传输的真实性和可靠性。
SCP默认通过TCP端口22运行
SCP程序常用语法:
复制代码
1
2
3
4
5
6
7// 复制文件到主机 scp SourceFile user@host:directory/TargetFile // 从主机复制文件 scp user@host:directory/SourceFile TargetFile scp -r user@host:directory/SourceFolder TargetFolder
复制代码
1
2
3// 从主机复制文件 scp user@host:directory/SourceFile TargetFile scp -r user@host:directory/SourceFolder TargetFolder
SFTP
SFTP也是基于SSH安全文件传输协议。不同于基于FTP,FTP基于Tcp使用明文传输用户信息。安全性较差。
Android中使用SCP
- 下载ganymed-ssh2 jar包
复制代码
1
2
3
4
5
6<!-- https://mvnrepository.com/artifact/ch.ethz.ganymed/ganymed-ssh2 --> <dependency> <groupId>ch.ethz.ganymed</groupId> <artifactId>ganymed-ssh2</artifactId> <version>build210</version> </dependency>
官方下载地址 http://www.ganymed.ethz.ch/ssh2/
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66public class Scp { private volatile static Scp scpInstance; private String user; private String pass; private String host; private Connection connection; private SCPClient scpClient; private Boolean isAuthed; private Scp(String user, String pass, String host){ this.user = user; this.pass = pass; this.host = host; } public static Scp getScpUtilsInstance(String user, String pass, String host){ if(scpInstance == null) { synchronized(Scp.class) { if(scpInstance == null) { scpInstance = new Scp(user,pass,host); } } } return scpInstance; } public void connect(){ connection = new Connection(host); try { connection.connect(); isAuthed = connection.authenticateWithPassword(user,pass); // scp 连接 scpClient = connection.createSCPClient(); } catch (IOException e) { e.printStackTrace(); close(); } } public void close(){ connection.close(); sftPv3Client.close(); } public boolean getIsAuthed(){ return isAuthed; } // 拷贝文件到服务器 public void putFile(String filePath,String aimPath){ try { if(scpClient != null){ scpClient.put(filePath,aimPath); } } catch (IOException e) { e.printStackTrace(); } } }
复制代码
1
2
3
4
5
6
7Scp scp = Scp.getScpUtilsInstance("root","psd","192.168.199.3"); scp.connect(); if(scp.getIsAuthed()){ for(int i = 0;i<data.getLayers();i++){ scp.putFile(SlcParser.pngDirectory+"/"+i+".png","/home"); } }
SFTP 删除文件
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22private SFTPv3Client sftPv3Client; sftPv3Client = new SFTPv3Client(connection); public void rmFile(String filePath){ try { if(sftPv3Client != null){ sftPv3Client.rm(filePath); } } catch (IOException e) { e.printStackTrace(); } } Scp scp = Scp.getScpUtilsInstance("root","psd","192.168.199.3"); scp.connect(); if(scp.getIsAuthed()){ for(int i = 0;i<10;i++){ scp.rmFile("/home/"+i+".png"); } }
以上就是如何在Android 中实现scp操作的详细内容,更多关于在Android 中实现scp操作的资料请关注靠谱客其它相关文章!
最后
以上就是细心羊最近收集整理的关于如何在Android 中实现scp操作的全部内容,更多相关如何在Android内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复