Tag: jsch

使用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运行和显示shell命令ssh的结果?

我尝试使用库JSch – Java安全通道在我的Android应用程序中建立一个ssh连接,它的工作原理。 现在我想执行一个命令并检索结果。 我尝试了几种效果最好的方法。 但是,这种方法只能部分工作,因为由于某种原因我无法解释,我的程序在我的while循环结束时停止,但我是我日志中出现的命令的结果。 这是我的代码: public static String executeRemoteCommand(String username, String password, String hostname, int port) throws Exception { JSch jsch = new JSch(); Session session = jsch.getSession(username, hostname, port); session.setPassword(password); // Avoid asking for key confirmation Properties prop = new Properties(); prop.put(“StrictHostKeyChecking”, “no”); session.setConfig(prop); session.connect(); Channel channel = session.openChannel(“shell”); channel.connect(); DataInputStream dataIn […]

使用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(); […]

如何为jgit设置jschconfigsessionfactory的配置,以便拉动和推送工作?

我正在尝试使用jgit的api使用以下代码执行git pull / push org.eclipse.jgit.api.Git.open(theRepoFile).pull().call() 但我得到例外 JSchException Auth fail com.jcraft.jsch.Session.connect (Session.java:461) org.eclipse.jgit.transport.JschConfigSessionFactory.getSession (JschConfigSessionFactory.java:116) org.eclipse.jgit.transport.SshTransport.getSession (SshTransport.java:121) org.eclipse.jgit.transport.TransportGitSsh$SshPushConnection. (TransportGitSsh.java:306) org.eclipse.jgit.transport.TransportGitSsh.openPush (TransportGitSsh.java:152) org.eclipse.jgit.transport.PushProcess.execute (PushProcess.java:130) org.eclipse.jgit.transport.Transport.push (Transport.java:1127) org.eclipse.jgit.api.PushCommand.call (PushCommand.java:153) 即使使用cgit pull and push工作。 我尝试检查SO以获取示例代码 使用jgit的Java git客户端 但上面的问题没有提供一个完整的编码示例,说明使用通常通过ssh密钥进行身份validation的远程仓库进行git pull所需的操作。 应该有办法从~/.ssh/或等效的Windows获取凭证信息。

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

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

带有工作密码的“com.jcraft.jsch.JSchException:Auth fail”

在尝试将文件上传到我们的服务器时,我收到以下exception com.jcraft.jsch.JSchException: Auth fail at com.jcraft.jsch.Session.connect(Session.java:464) at com.jcraft.jsch.Session.connect(Session.java:158) at FtpService.transferFileToReciever(FtpService.java:80) at FtpService.transferFileToReciever(FtpService.java:54) at FtpService.transferFileToRecievers(FtpService.java:44) at FtpService.transferSingeFile(FtpService.java:241) at FtpService.main(FtpService.java:26) Auth fail 源文件中函数transferFileToReciever的部分是 JSch jsch = new JSch(); jsch.addIdentity(“/root/.ssh/id_dsa”); Session session = jsch.getSession(username, host, 22); session.setUserInfo(serverinfo); session.connect(); //geting exception here boolean ptimestamp = true; 密码正常,因为我可以使用ssh登录,但是使用JSCh它甚至不提供密钥,用户名和密码。 使用带有java版本“1.6.0_25”的id_dsa密钥。 可能是什么错误? 发现其他类似的问题,但不是答案。 提前致谢。

JSch sftp上传/下载进度

我是JSch和java的新手。 我设法得到一些代码并以某种方式理解它,但我坚持一点。 以下代码从SSH服务器下载文件,但我需要显示复制文件百分比的进度表。 我该怎么做。 我将非常感谢你的帮助。 import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; import com.jcraft.jsch.SftpProgressMonitor; public class SFTPExample { public static void main(String args[]) throws Exception { String user = “root”; String password = “password”; String host = “192.168.0.5”; int port = 22; String knownHostsFilename = “/home/world/.ssh/known_hosts”; String sourcePath = “/media/nfs/genotype.txt”; String destPath = “genotype.txt”; JSch jsch […]

spring integration sftp mainframe:写文件失败; 嵌套exception为3:权限被拒绝

我正在尝试使用spring integration sftp:outbound-gateway将文件sft到大型机:这是配置: 哪里 remote.upload.filename.credit.fmpl=/!DTS4.UP.G3TRF.S60304 remote.upload.directory=/ 我得到例外: Caused by: org.springframework.integration.MessagingException: Failed to write to ‘//!DTS4.UP.G3TRF.S60304’ while uploading the file at org.springframework.integration.file.remote.RemoteFileTemplate.sendFileToRemoteDirectory(RemoteFileTemplate.java:392) at org.springframework.integration.file.remote.RemoteFileTemplate.access$500(RemoteFileTemplate.java:56) at org.springframework.integration.file.remote.RemoteFileTemplate$1.doInSession(RemoteFileTemplate.java:213) … 46 more Caused by: org.springframework.core.NestedIOException: failed to write file; nested exception is 3: Permission denied at org.springframework.integration.sftp.session.SftpSession.write(SftpSession.java:158) at org.springframework.integration.file.remote.RemoteFileTemplate.sendFileToRemoteDirectory(RemoteFileTemplate.java:385) … 48 more Caused by: 3: Permission denied at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2629) […]

使用Jsch列出远程服务器中的所有文件

我试图使用JSCH从远程服务器列出所有文件/目录,我也能够获得所有信息.. 但我的问题是JSCH列出了所有具有文件创建日期,时间戳,读/写权限等类型的文件。, 但在我的情况下,我只需要远程服务器中的文件/目录名称,并且不需要其他信息。 下面是我的java代码.. import java.util.Vector; import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; public class Listremoteserver { /** * @param args */ @SuppressWarnings(“unchecked”) public static void main(String[] args) { String SFTPHOST = “xxxxx”; int SFTPPORT = 22; String SFTPUSER = “xxx”; String SFTPPASS = “xxxxx”; String SFTPWORKINGDIR = “/root”; Session session = null; Channel […]

使用Java中的JSch在服务器上创建嵌套目录

我正在使用jSch在Java中创建jSch应用程序。 我想根据创建日期等将我的文件放在不同的目录中。 我有一个主目录”/var/local/recordingsbackup/” ,我在其中创建其他目录并将数据放入其中。 为达到这个: 我必须像”/var/local/recordingsbackup/20140207/root/SUCCESS/WN/”那样创建Dir’y并将数据放入其中。 到目前为止我试过这个: private void fileTransfer(ChannelSftp channelTarget, temp_recording_log recObj, String filePath) { int fileNameStartIndex = filePath.lastIndexOf(“/”) + 1; String date = new SimpleDateFormat(“yyyyMMdd”).format(recObj.getCalldate()); String fileName = filePath.substring(fileNameStartIndex); String staticPath = “/var/local/recordingsbackup/”; String completeBackupPath = staticPath + date + “/” + recObj.getUsername() + “/” + recObj.getStatus() + “/” + recObj.getDisposition() + “/”; […]