当前位置: 首页 > 知识库问答 >
问题:

如何使用JSCH将文件从shell通道上传到另一个SFTP服务器?

司马自明
2023-03-14
....
session.connect()
channel = session.openChannel("shell");
PrintStream shellStream = new PrintStream(channel.getOutputStream());  // printStream for convenience 
channel.connect(); 
shellStream.println(command); 
shellStream.flush();
code to connect sftp channel and put the file from unix server to sftp.

源和目标都是远程的。

是否可以使用JSCH?

共有1个答案

竺翰海
2023-03-14

SFTP协议(仅允许JSch SFTP库)不支持两个远程服务器之间的传输。

如果您对其中一个服务器具有shell访问权限,则可以尝试使用服务器上的命令行(OpenSSH)sftp客户端传输文件。这是可行的。问题是身份验证部分,因为它是非交互式会话。您必须使用未加密的私钥、代理转发或sshpass

显而易见的简单实现方式是将文件从“UNIX”服务器下载到本地机器上,然后上传到“SFTP”服务器上。但您需要使用SFTP通道,而不是shell通道进行下载。

 类似资料:
  • 问题内容: 我需要使用JSch库对文件传输进行编程。我有一个包含两个文件夹的简单目录 在SFTP_1文件夹中,我有一个位图图像。该SFTP_2文件夹只是一个空文件夹。我的目标是使用SFTP将图像从SFTP_1传输到SFTP_2。 到目前为止,这是我的代码: 我想做的只是将文件从计算机中的一个目录传输到另一个目录。任何提示表示赞赏,谢谢! 问题答案: 请注意,要在两个文件夹之间进行复制,不需要使用S

  • 有一个用例,我必须: 在我的应用程序中,在应用程序服务器上生成一个文件。让我们把这称为一台机器。(这是我的Java代码运行的地方,用来生成文件) 从应用程序本身,我希望使用SFTP将这个文件传输到一个固定路径(比如)的白名单服务器B 第1点和第2点是直截了当的。 现在有一个外部服务器C(我提供了它的凭据) 现在,应用程序正在服务器A上运行。 文件现在位于服务器B中的== 如何实现这种多次跳转的SF

  • 问题内容: 我正在使用jsch从服务器下载文件,下面是我的代码。 com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2629) at com.jcraft.jsch.ChannelSftp._get(ChannelSftp.java:977) at com.jcraft.jsch.ChannelSftp.get(Channe

  • 本文向大家介绍用php将文件上传到另一个php服务器,包括了用php将文件上传到另一个php服务器的使用技巧和注意事项,需要的朋友参考一下 fopen,fread和fwrite函数可用于打开文件流,读取数据流并将该数据分别写入文件。 文件资源不一定需要指向本地计算机本身上的某个位置。 以下是将文件从本地服务器传输到ftp服务器的示例- 该图像需要传输到FTP服务器。因此,服务器以写模式打开,并且图

  • 问题内容: 我不知道如何通过JSch Shell通道发送命令。 我这样做,但是不起作用: 然后我读这样的输入: 问题答案: 如果挂起,则意味着您的“ while”永远不会结束(考虑您的代码可能不太可能),或者正在等待其“源”,即线程原因造成的阻塞。 如果没有看到调试信息,我就无法对您的代码进行故障排除。但是作为建议,您尝试过吗?这个想法是将控制台输入传递到“您的”输出,以便您可以“编写”它。为此,

  • 我需要使用JSch库编程文件传输。我有一个包含两个文件夹的简单目录- 在SFTP\u 1文件夹中,我有一个位图图像。而SFTP\U 2文件夹只是一个空文件夹。我的目标是使用SFTP将图像从SFTP\U 1传输到SFTP\U 2。 以下是迄今为止我的代码: 我想做的是简单地将文件从我机器中的一个目录传输到另一个目录。任何提示,谢谢!