Tag: sftp

SFTP通过JSch抛出错误4:失败

在尝试SFTP文件从Windows到Unix服务器时,我遇到了一个特殊的问题。 错误“堆栈跟踪”是 – 4: Failure at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2846) at com.jcraft.jsch.ChannelSftp.checkStatus(ChannelSftp.java:2459) at com.jcraft.jsch.ChannelSftp._sendCLOSE(ChannelSftp.java:2465) at com.jcraft.jsch.ChannelSftp._put(ChannelSftp.java:683) at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:475) at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:365) 我在其他论坛上搜索了很多,但无法找到根本原因。 我还观察了一件事 – 文件名,我正在尝试SFTP,当我将其更改为* .XML时,它是* .xml,SFTP是“成功的”。 非常奇怪无法确定问题。 我正在尝试使用JSch Java API。 但是我在尝试WinSCP前端时遇到了同样的问题。

使用JSch从SFTP服务器下载文件

我正在使用jsch从服务器下载文件,我的代码如下。 public static void downloadFile(TpcCredentialsDTO dto) { logger.trace(“Entering downloadFile() method”); Session session = null; Channel channel = null; ChannelSftp channelSftp = null; boolean success = false; try { JSch jsch = new JSch(); session = jsch.getSession(dto.getUsername(), dto.getHost(), dto.getPort()); session.setPassword(dto.getPassword()); session.setConfig(“StrictHostKeyChecking”, “no”); session.connect(); logger.info(“Connected to ” + dto.getHost() + “.”); channel = session.openChannel(“sftp”); channel.connect(); channelSftp = […]

使用JSch从SFTP服务器检索数据

我正在使用JSch通过SFTP从远程机器检索文件。 这是代码 public class TestSFTPinJava { public static void main(String args[]) { JSch jsch = new JSch(); Session session = null; try { session = jsch.getSession(“username”, “sftp.abc.com”, 22); session.setConfig(“StrictHostKeyChecking”, “no”); session.setPassword(“password”); session.connect(); Channel channel = session.openChannel(“sftp”); channel.connect(); ChannelSftp sftpChannel = (ChannelSftp) channel; System.out.println(“Directory:” + sftpChannel.pwd()); sftpChannel.cd(“remoteDirectory/”); System.out.println(“Directory after cd:” + sftpChannel.pwd()); sftpChannel.get(“remote-data.txt”); sftpChannel.put(“C:\\Users\\mona\\Documents\\local-copy.txt”); sftpChannel.exit(); session.disconnect(); […]

SFTP服务器在Apache Mina SSHD中设置用户/密码

我正在使用这个例子,取自Java SFTP Server Library? : public void setupSftpServer(){ SshServer sshd = SshServer.setUpDefaultServer(); sshd.setPort(22); sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider(“hostkey.ser”)); List<NamedFactory> userAuthFactories = new ArrayList<NamedFactory>(); userAuthFactories.add(new UserAuthNone.Factory()); sshd.setUserAuthFactories(userAuthFactories); sshd.setCommandFactory(new ScpCommandFactory()); List<NamedFactory> namedFactoryList = new ArrayList<NamedFactory>(); namedFactoryList.add(new SftpSubsystem.Factory()); sshd.setSubsystemFactories(namedFactoryList); try { sshd.start(); } catch (Exception e) { e.printStackTrace(); } } 但是我需要为SFTP服务器设置用户登录和pw。 我怎样才能做到这一点? 谢谢

Java的内存SFTP服务器有什么用?

我有一些代码,我需要编写一个测试,连接到供应商的SFTP服务器并将文件放在那里。 现在测试是连接到他们的实际服务器,但我宁愿不这样做。 理想情况下,我想在MockFtpServer中使用假的,内存中的服务器。 我尝试使用那个并且它在那里得到了一部分但是在发出实际命令时死亡,因为它不能识别它们。 有问题的代码是Mule ESB中的流程设置。

使用JSch将文件放入远程目录,如果该目录不存在,则创建它

我想使用Jsch库和SFTP协议将文件复制到远程目录。 如果远程主机上的目录不存在,则创建它。 在API文档http://epaul.github.com/jsch-documentation/javadoc/中 ,我注意到在put方法中有一种“模式”,但它只是传输模式: – 传输模式, RESUME,APPEND,OVERWRITE之一。 有没有一个简单的方法来做到这一点,而无需编写我自己的代码来检查存在,然后递归创建一个目录?

可靠的示例,说明如何使用Java使用公共私钥认证来使用SFTP

最近我们的客户意外地将我们从ftp收集的一些重要文件转移到了sftp服务器。 最初我的印象是编写或找到一个可以处理sftp的java实用程序很简单,但事实certificate并非如此。 还有一个问题是我们正在尝试从Windows平台连接到sftp服务器(因此SSH_HOME在客户端上的定义变得非常混乱)。 我一直在使用apache-commons-vfs库,并设法获得一个可靠地用于用户名/密码身份validation的解决方案,但至今还没有任何可以可靠地处理私钥/公钥认证的解决方案。 以下示例适用于用户名/密码身份validation,但我想调整它以进行私钥/公钥身份validation。 public static void sftpGetFile(String server, String userName,String password, String remoteDir, String localDir, String fileNameRegex) { File localDirFile = new File(localDir); FileSystemManager fsManager = null; if (!localDirFile.exists()) { localDirFile.mkdirs(); } try { fsManager = VFS.getManager(); } catch (FileSystemException ex) { LOGGER.error(“Failed to get fsManager from VFS”,ex); throw new RuntimeException(“Failed to get […]

SFTP上传下载使用Apache Commons VFS进行存在和移动

我需要一个纯Apache Commons VFS解决方案/代码/示例 将本地文件上载到远程主机位置 检查远程主机位置中是否存在文件 将远程主机文件下载到本地文件位置 将文件从一个远程位置移动到同一主机中的另一个远程位置 从远程主机位置删除文件 通过SFTP电话。 解决方案应该只使用Apache Commons VFS api,不应该引用底层的JSCH库。

为什么InputStream.read()阻塞在这里?

我应该开发一个简单的SFTP。 事情进展顺利,直到我的ByteArrayOutputStream (在这种情况下, baos )没有编写所有的arrayByte 。 有些人可以向我解释,为什么系统会挂在我身上? 服务器端: public static void main (String[] args) { int portTexto = 5656; String comando; String regexGet = “\\s*(get)\\s[A-z0-9]*\\.[A-z0-9]*\\s*”; String regexPut = “\\s*(put)\\s[A-z0-9]*\\.[A-z0-9]*\\s*”; try{ ServerSocket servSockTexto = new ServerSocket(portTexto); // pegar IP de servidor. try { InetAddress addr = InetAddress.getLocalHost(); System.out.println(addr.getHostAddress()); } catch (UnknownHostException e) { } System.out.println(“Aguardando conexão […]

如何使用java按上次更新时间排序SFTP文件?

我的FTP服务器中有一组文本文件。 我想阅读所有文件都是今天上传的。 其中我必须打印最后三个上传文件的属性。 (名称,上传时间,大小)。 现在我将能够打印存在于FTP服务器中的文件的名称和属性,但它不在订单中并显示为垃圾。 现在我想打印最后三个上传文件的名称,大小,路径,上传时间。 任何人都可以帮我实现这个目标吗? 这是我的片段: package com; import java.io.File; import edu.vt.middleware.crypt.io.TeePrintStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; import java.net.ConnectException; //import java.sql.Date; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Calendar; import java.util.Date; import javax.mail.MessagingException; import javax.mail.internet.AddressException; import org.apache.commons.io.FileUtils; import org.apache.commons.io.comparator.LastModifiedFileComparator; import org.apache.commons.net.ftp.FTPFile; import com.enterprisedt.net.ftp.FTPConnectMode; import com.enterprisedt.net.ftp.FTPException; import com.enterprisedt.net.ftp.FTPTransferType; import com.enterprisedt.net.ftp.Protocol; import com.enterprisedt.net.ftp.SecureFileTransferClient; import […]