繁体   English   中英

使用“ exec”通道传输JSch SCP文件

[英]JSch SCP file transfer using “exec” channel

我对SCP协议和JSch很陌生。 我必须将文件通过SCP从远程设备传输到Android。 服务器端开发人员拒绝透露有关设备的任何信息,除了文件位置和可用于通过SCP访问设备的根帐户。

这是我尝试的步骤。

  1. 确认使用JSch,我的Android客户端可以与服务器建立连接。 [完成]

  2. 确认使用JSch和ChannelExec对象,我可以发送ls命令并读取其输出。 [完成]

  3. 确认使用JSch和ChannelSFTP对象,我可以从设备传输文件。 [失败]

(3)失败的原因似乎是未为SFTP配置设备(服务器)。 制造商一直在说ssh上的命令如下所示:

scp root@192.168.5.1/usr/WS026.jpeg [targetPath]

他们说上面的命令会将第一个参数复制到客户端的目标路径。 因此,除了使用SFTP之外, 如何在JSch通道“ exec”中实现它?

如果设备仅支持SCP,请勿尝试使用SFTP,而应使用SCP。

有一个使用JSch实施SCP下载的官方示例:
http://www.jcraft.com/jsch/examples/ScpFrom.java.html


不要被示例代码中的scp调用弄糊涂了。 这就是SCP协议的工作方式。 本地(OpenSSH) scp在远程服务器上执行scp (使用特定的非公共参数,在本例中为-f ),然后这两个实例相互通信。 该示例实现了本地scp 用于远程scp的参数不是您将用于本地scp的参数。

另请参见JSch库中有关SCP协议实现的说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM