使用JSch SCP文件传输“EXEC”的信道

问题描述 投票:2回答:1

我很新的SCP协议和JSch。我有通过SCP传输文件来回远程设备到Android。服务器端开发人员拒绝告诉除外文件位置对他们的设备是什么,可以用来与SCP访问它的root帐户。

下面是我试过的步骤。

  1. 确认使用JSch,我的Android客户端可以建立与服务器的连接。 [完成]
  2. 确认使用JSch和ChannelExec对象,我可以发送命令ls并读取其输出。 [完成]
  3. 确认使用JSch和ChannelSFTP对象,我可以从设备传输文件。 [失败]

为什么(3)失败的原因似乎是设备(服务器)未配置为SFTP。制造商口口声声说对SSH命令,即像下面的工作:

scp [email protected]/usr/WS026.jpeg [targetPath]

他们说,上面的命令将第一个参数复制到客户端的目标路径。因此,除了使用SFTP,我怎么能实现在JSch通道“执行”?

java android scp jsch
1个回答
3
投票

如果设备支持SCP而已,不要尝试使用SFTP,SCP使用。

还有实现使用JSch的SCP下载的官方例子: http://www.jcraft.com/jsch/examples/ScpFrom.java.html


不要通过scp的示例代码调用困惑。这就是SCP协议是如何工作的。本地(OpenSSH的)scp执行远程服务器上的scp(具体的非公开争论,在这种情况下,-f),然后两个实例互相交谈。该示例实现局部scp。用于远程scp的参数是不是你会使用本地scp的参数。

参见Explanation for SCP protocol implementation in JSch library

© www.soinside.com 2019 - 2024. All rights reserved.