如何在Android 中实现scp操作
程序员文章站
2022-03-07 23:26:13
本文简单介绍用ssh库ganymed-ssh2在android中实现scp操作。sshssh是专为远程登录会话和其他网络服务提供安全性的协议,简单的说就是一种网络协议。是linux的标准配置。用于li...
本文简单介绍用ssh库ganymed-ssh2在android中实现scp操作。
ssh
ssh是专为远程登录会话和其他网络服务提供安全性的协议,简单的说就是一种网络协议。是linux的标准配置。用于linux设备之间的通讯。
scp
scp是一种基于ssh完成加密拷贝文件的协议。使用ssh进行身份认证确保数据传输的真实性和可靠性。
scp默认通过tcp端口22运行
scp程序常用语法:
// 复制文件到主机 scp sourcefile user@host:directory/targetfile // 从主机复制文件 scp user@host:directory/sourcefile targetfile scp -r user@host:directory/sourcefolder targetfolder
// 从主机复制文件 scp user@host:directory/sourcefile targetfile scp -r user@host:directory/sourcefolder targetfolder
sftp
sftp也是基于ssh安全文件传输协议。不同于基于ftp,ftp基于tcp使用明文传输用户信息。安全性较差。
android中使用scp
- 下载ganymed-ssh2 jar包
<!-- https://mvnrepository.com/artifact/ch.ethz.ganymed/ganymed-ssh2 --> <dependency> <groupid>ch.ethz.ganymed</groupid> <artifactid>ganymed-ssh2</artifactid> <version>build210</version> </dependency>
官方下载地址
public 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(); } } }
scp 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 删除文件
private 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中实现延时执行操作的方法小结
-
如何在Android中实现左右滑动的指引效果
-
Android中实现地址栏输入网址能浏览该地址网页源码并操作访问网络
-
如何在Android中实现渐显按钮的左右滑动效果
-
Android编程实现在Activity中操作刷新另外一个Activity数据列表的方法
-
Android 通过onDraw实现在View中绘图操作的示例
-
Android中实现地址栏输入网址能浏览该地址网页源码并操作访问网络
-
如何在Android中实现左右滑动的指引效果
-
如何在Android中实现渐显按钮的左右滑动效果
-
Android编程实现在Activity中操作刷新另外一个Activity数据列表的方法