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

我对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之外,

回答:

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

有一个使用JSch实现SCP下载的官方示例:http

//www.jcraft.com/jsch/examples/ScpFrom.java.html


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

scp的参数不是用于local的参数scp

以上是 使用“ exec”通道传输JSch SCP文件 的全部内容, 来源链接: utcz.com/qa/421018.html

回到顶部