java sftp命令_java编写的sftp 使用demo

本文作为java学习过程中的积累,同时也跟刚入门java童鞋分享下。

sftp 主要用于安全的进行文件的传输,即如果实际项目开发过程中,如需进行文件的传输,就可以拿这个demo进行参考。

本demo 主要包含文件的上次和下载(含断点续传的方法)

源码:https://github.com/wyfx09/wo_sftp.git

1.1.    Maven引用

com.jcraft

jsch

0.1.54

1.2.    建立连接

JSchjsch = newJSch();

Session session = jsch.getSession(username, host, port);

session.setConfig(getSshConfig());

session.setPassword(password);

session.connect();

Channel channel = session.openChannel("sftp");

channel.connect();

ChannelSftpchannelSftp = (ChannelSftp) channel;

1.3.    Logger

Jsch提供com.jcraft.jsch.Logger基类,用于输出Jsch的日志。

1.4.    Sftp操作

put():      文件上传

get():      文件下载

cd():       进入指定远程目录

lcd():      进入指定本地目录

ls():       得到指定目录下的文件列表

rename():   重命名指定文件或目录

rm():       删除指定文件

mkdir():    创建目录

rmdir():    删除目录

1.5.    传输进度

继承com.jcraft.jsch.SftpProgressMonitor,并实现其中的方法:

voidinit(intop, String src, String dest, longmax)

初始化方法,开始传输之前调用

op: 0-上传,1-下载

max: 文件大小

booleancount(longcount)

开始传输前调用一次:

count:已传输长度

每传一个数据块调用一次:

count: 每次传输的长度

voidend()

传输结束时调用

1.6.    断点续传

78a561b3959051885fbc8e9779d5678e.png

1.7.    签名登录

JSchjsch = newJSch();

jsch.addIdentity(identity, passphrase);

Session session = jsch.getSession(username, host, port);

session.setConfig(getSshConfig());

session.connect();

Channel channel = session.openChannel("sftp");

channel.connect();

ChannelSftpchannelSftp = (ChannelSftp) channel;

2. 生成RSA

2.1.    Linux环境下,执行以下命令生成

ssh-keygen -t  rsa

2.2.    通过代码使用Jsch生成

KeyPairkpair = KeyPair.genKeyPair(jsch, keytype, keysize);

kpair.writePrivateKey(filename, passphrase.getBytes("UTF-8"));

kpair.writePublicKey(filename + ".pub", comment);

kpair.dispose();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值