当前位置: 首页 > 面试题库 >

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

成和悌
2023-03-14
问题内容

我对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),然后这两个实例相互对话。该示例实现了local scp。用于Remote
scp的参数不是用于local的参数scp



 类似资料:
  • 我对SCP协议和JSch非常陌生。我必须通过SCP从远程设备传输文件到Android。服务器端开发人员拒绝透露任何关于他们设备的信息,除了文件位置和可以用SCP访问它的根帐户。 以下是我尝试的步骤。 > 确认使用JSch和对象,我可以发送命令并读取其输出。[完整] 确认使用JSch和对象,我可以从设备传输文件。[失败] (3)失败的原因似乎是设备(服务器)没有为SFTP配置。制造者一直在说,像下面

  • 我目前有一个依赖于通过安全套接字传输的JSON的原始RPC设置,但我想切换到gRPC。不幸的是,我还需要访问windows上的AF\U UNIX(Microsoft最近开始支持,但gRPC尚未实现)。 由于我有一个现有的工作连接(使用另一个库进行管理),我的首选方法是将其与GRPC结合使用来发送/接收命令,而不是JSON解析,但我正在努力确定实现这一点的最佳方法。 我已经看到将自定义传输插入gRP

  • 主要内容:1 通道间传输的介绍,2 transferFrom()方法,3 transferTo()方法1 通道间传输的介绍 在Java NIO中,如果其中一个通道是FileChannel,则可以将数据直接从一个通道传输到另一个通道。该FileChannel包含transferTo() 和 transferFrom() 方法来实现数据传输。 2 transferFrom()方法 FileChannel.transferFrom()方法将数据从源通道传输到 FileChannel。以下是简单的代码示

  • null 在这种情况下,如果我们需要添加更多的源和目标,我们只需要更改属性文件。正如我所知,我们不能在Apache Camel中使用动态endpoint。 示例:

  • 在Java NIO中如果一个channel是FileChannel类型的,那么他可以直接把数据传输到另一个channel。逐个特性得益于FileChannel包含的transferTo和transferFrom两个方法。 transferFrom() FileChannel.transferFrom方法把数据从通道源传输到FileChannel: RandomAccessFile fromFile

  • 问题内容: 我在完全冻结JVM的应用程序中发现一个错误。产生的stacktrace将为开发人员提供有价值的信息,我想从Java控制台中检索它。JVM崩溃时,控制台被冻结,我无法再复制包含的文本。 是否可以将Java控制台直接通过管道传输到文件,或通过其他某种方式访问​​Java应用程序的控制台输出? 更新:我忘记提了,没有更改代码。我是手动测试仪。 更新2:这是在Windows XP下,它实际上是