热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

如何在Android中实现scp操作

这篇文章主要介绍了如何在Android中实现scp操作,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下

本文简单介绍用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包


  ch.ethz.ganymed
  ganymed-ssh2
  build210

官方下载地址 http://www.ganymed.ethz.ch/ssh2/

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

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操作的资料请关注其它相关文章!


推荐阅读
  • Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理,现在在企业中的使用率也是很广的。git是一个分布式的版本控制系统,不像以前的svn,svn是 ... [详细]
  • 服务器系统控制台怎么打开文件,云服务器控制台怎么打开文件
    云服务器控制台怎么打开文件内容精选换一换远程桌面协议(RemoteDesktopProtocol,RDP),是微软提供的多通道的远程登录协议。本节为您介 ... [详细]
  • 本人先前是linux的支持都,使用过后就成为了其的鄙视者,观点如下:linux想跟windows比,tmd先搞好软件安装的问题。在linux在动不动就要命令行,有多少人会这恶心的命令行。会命令 ... [详细]
  • 用户管理_用户管理的小项目
      之前学习链表数据结构的时候,写过(相信很多人都做过)dos窗口版的学生管理系统,通过输入数字来实现CURD学生的信息,顶多就是把数据写入文件来存储数据 ... [详细]
  • Docker从安装到入门到项目部署
    容器化的时代你怎么可 ... [详细]
  • 80% 的 Android 应用正使用加密流量!
    本文带你了解谷歌对加密流量以及对Android应用程序执行API级别的要求,来看看这些数据未来可能的变化趋势吧。作者|PaulSawers译者|谭开朗, ... [详细]
  • 缓冲区溢出实例(一)–Windows
    一、基本概念缓冲区溢出:当缓冲区边界限制不严格时,由于变量传入畸形数据或程序运行错误,导致缓冲区被填满从而覆盖了相邻内存区域的数据。可以修改内存数据,造成进程劫持,执行恶意代码,获 ... [详细]
  • docker整体了解
    Docker是一个基于LXC技术构建的容器引擎,基于Go语言开发,遵循Apache2.0协议开源Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移 ... [详细]
  • java中关键语言英文版_为什么Java是华尔街上最炙手可热三门编程语言之一
    原标题:为什么Java是华尔街上最炙手可热三门编程语言之一多年以来Java都是华尔街最热门的编程语言。从低延迟处理应用到订单管理系统或风险评估平台,都有 ... [详细]
  • handler机制_Handler机制与原理
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Handler机制与原理相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 1、概念共享内存:共享内存是进程间通信中最简单的方式之一。共享内存允许两个或更多进程访问同一块内存,就如同malloc()函数向不同进程返回了指向同一个 ... [详细]
  • 大数据学习环境安装关于防火墙​centos7使用的是firewalld,centos之前使用的是iptablesCentOS7关闭防火墙查看防火墙状态sudosy ... [详细]
  •  在使用PHP多年之后,我对PHP的优势和劣势已经非常清楚,与后起之秀Golang相比,两者已经不在一个重量级。 PHP更像是70kg级别的选手,脚本语言,极速开发,部署方便,性能 ... [详细]
  • 简单理解rsa的加密和签名PHP实现
    我们先动手在linux上生成一下rsaPs:openssl是一堆加密算法和安全协议的开源集合,像RSA,DES,MD5,RC4等等,都能在openssl里面找到源代码 ... [详细]
  • Splunk Enterprise 存在任意代码执行漏洞
    splunk,enterprise,存在,任 ... [详细]
author-avatar
手机用户2502895293
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有