shell运行jar文件,SFTP session.connect()总是失败,以及,求高手解答

我写了个可执行的jar包,jar包是用来登录linux服务器可进行文件操作,如上传文件的。
然后,**我在本地写了个类通过shell来进行调用和传参,文件可以成功上传至服务器**

图片说明

但是,我通过网页访问触发这个上传操作的时候,确会抛异常,我是直接new自己写的这个本地类,然后调用本地run方法就会抛异常。

异常如下:

2016-06-15 15:57:43,520 ERROR [avicit.bizintg.util.filetrans.sshsftp.JschSFTPUtil] -
com.jcraft.jsch.JSchException: Session.connect: java.security.InvalidAlgorithmParameterException: Prime size must be multiple of 64, and can only range from 512 to 1024 (inclusive)
at com.jcraft.jsch.Session.connect(Session.java:558)
at com.jcraft.jsch.Session.connect(Session.java:183)
at avicit.bizintg.util.filetrans.sshsftp.JschSFTPUtil.sftpLogin(JschSFTPUtil.java:116)
at avicit.bizintg.util.filetrans.FilePushEntrance.main(FilePushEntrance.java:43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2016-06-15 15:57:43,521 ERROR [avicit.bizintg.util.filetrans.sshsftp.JschSFTPUtil] - <连接sftp失败!>
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.simontuffs.onejar.Boot.run(Boot.java:306)
at com.simontuffs.onejar.Boot.main(Boot.java:159)
com.jcraft.jsch.JSchException: session is down
at com.jcraft.jsch.Session.openChannel(Session.java:853)
at avicit.bizintg.util.filetrans.sshsftp.JschSFTPUtil.sftpLogin(JschSFTPUtil.java:122)
2016-06-15 15:57:43,522 ERROR [avicit.bizintg.util.filetrans.sshsftp.JschSFTPUtil] - <连接sftp失败!>

我用的是IBMJDK

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
jsch连接sftp问题 Session.connect: java.security.

公司使用的IBM的jdk,使用jsch做一个sftp连接上传下载文件的工具,当使用jsch 0.1.51版本时 连接报错Algorithm negotiation fail, 然后升级版本到0.1.54 连接报错 Session.connect: java.security.InvalidAlgorithmParameterException: Prime size must be multiple of 64, and can only range from 512 to 1024 (inclusive) 求大神教育

jsch连接sftp异常 connection rest

sftp getConnect error : com.jcraft.jsch.JSchException: Session.connect: java.net.SocketException: Connection reset

连接sftp,偶尔报连接错

com.jcraft.jsch.JSchException: verify: false at com.jcraft.jsch.Session.connect(Session.java:309) at com.jcraft.jsch.Session.connect(Session.java:162) at com.cslo.gm.server.po.SFTPUtils.connect(SFTPUtils.java:77) at com.cslo.gm.server.po.SFTPUtils.getAllFilename(SFTPUtils.java:593) at com.cslo.gm.server.service.FileBetDiffScheduleServiceImpl.fileDownload(FileBetDiffScheduleServiceImpl.java:102) at com.cslo.gm.server.service.FileBetDiffScheduleServiceImpl$$FastClassByCGLIB$$36d1644e.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:701) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:634) at com.cslo.gm.server.service.FileBetDiffScheduleServiceImpl$$EnhancerByCGLIB$$1e553e81.fileDownload(<generated>) at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:269) at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:311) at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:113) at org.quartz.core.JobRunShell.run(JobRunShell.java:216) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)

java.io.IOException: End of IO Stream Read

com.jcraft.jsch.JSchException: Session.connect: java.io.IOException: End of IO Stream Read

c# Tamir.SharpSsh连接sftp 使用方法Connect()

c#使用Tamir.SharpSSH.dll上传文件到sftp,平常都能正常运行,偶尔会出现调用 Connect()方法的时候停掉,不抛出任何的异常,一直停在这里。这样导致我的线程 也一直停在这里。然后把程序重新启动后又可以正常连接了。哪位遇到过这种现象?

JSCH上传文件到linux服务器打开远程目录报空指针异常

最近的项目要用jsch把本地文件上传到服务器,但是出现问题: ``` public static void main(String[] args) { try { upload("/home/informix", "C:\\Users\\Administrator\\Desktop\\upload.jsp", getSession()); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JSchException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SftpException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //获得指定用户session public static Session getSession() throws JSchException { JSch jsch = new JSch();// 创建JSch对象 Session session = jsch.getSession("informix", "192.168.226.166", 22); session.setPassword("ffcsffcs"); Properties config = new Properties(); // 设置 SSH 连接时不进行公钥确认 config.put("StrictHostKeyChecking", "no"); session.setConfig(config); session.connect(); return session; } //上传单个文件 public static void upload(String remotePath, String uploadFile, Session session) throws JSchException, FileNotFoundException, SftpException { ChannelSftp channelSftp = (ChannelSftp) session.openChannel("sftp"); channelSftp.cd(remotePath); File file = new File(uploadFile); channelSftp.put(new FileInputStream(file), file.getName()); //channelSftp.put(new FileInputStream(file), remotePath, ChannelSftp.OVERWRITE); System.out.println("Upload Success!"); } ``` 异常: 4: at com.jcraft.jsch.ChannelSftp.cd(ChannelSftp.java:285) at cn.ffcs.util.JSchUtils.upload(JSchUtils.java:121) at cn.ffcs.util.JSchUtils.main(JSchUtils.java:29) Caused by: java.lang.NullPointerException at com.jcraft.jsch.Packet.reset(Packet.java:43) at com.jcraft.jsch.ChannelSftp.sendPacketPath(ChannelSftp.java:2025) at com.jcraft.jsch.ChannelSftp.sendREALPATH(ChannelSftp.java:1954) at com.jcraft.jsch.ChannelSftp._realpath(ChannelSftp.java:1807) at com.jcraft.jsch.ChannelSftp.cd(ChannelSftp.java:268) ... 2 more 求大神指点

xshell能连上远程sftp,Java内却连不上

有没有大佬能解决下 ``` public static boolean initChannel(String host,Integer port,String userName,String password){ try { JSch jSch = new JSch(); sshSession = jSch.getSession(userName,host,port); sshSession.setPassword(password); Properties sshConfig = new Properties(); sshConfig.put("StrictHostKeyChecking", "no"); sshSession.setConfig(sshConfig ); //sshSession.setTimeout(60); sshSession.connect(); Channel channel = sshSession.openChannel("sftp"); channel.connect(); sftp = (ChannelSftp) channel; return true; } catch (JSchException e) { e.printStackTrace(); logger.error("sftp连接失败,host:{},port:{}",host,port,e); return false; } } ``` 打断点发现是卡在sshSession.connect()方法一直过不去,在这段 ![图片说明](https://img-ask.csdn.net/upload/201908/23/1566525752_127687.png) 而且设置了timeout时间也不会报超时错误,就一直卡在这里

jcsh使用报错,怎么解决呢?

使用jcsh包进行sftp上传下载操作时,出现如下异常,怎么解决呢? 异常信息为: JSchException: Session.connect: java.security.NoSuchAlgorithmException: DH KeyPairGenerator not avai

sftp连接时,报错invalid server's version string

连接方法,我看了一下和网上一样。但这种错误在网上没有搜索到。有遇到这个错误的,给点提示,谢谢。 public ChannelSftp connect(String host, int port, String username, String password) { ChannelSftp sftp = null; try { JSch jsch = new JSch(); jsch.getSession(username, host, port); Session sshSession = jsch.getSession(username, host, port); System.out.println("Session created."); sshSession.setPassword(password); Properties sshConfig = new Properties(); sshConfig.put("StrictHostKeyChecking", "no"); sshSession.setConfig(sshConfig); sshSession.connect(); System.out.println("Session connected."); System.out.println("Opening Channel."); Channel channel = sshSession.openChannel("sftp"); channel.connect(); sftp = (ChannelSftp) channel; System.out.println("Connected to " + host + "."); } catch (Exception e) { } return sftp; }

sftp.py ,python基础语法

#!/usr/bin/env python # ----------------------------------------------------------------------------- # sftp.py # Author: Andyrat # Date: 2014/01/07 09:39:38 import sys import os import time try: from paramiko import SSHClient from paramiko import AutoAddPolicy except e: print 'Error:Need module paramiko,TRY:apt-get install python-paramiko.' #------- modify here ---------------------------------------------- # download file from this server serFr = {'ip':'10.13.20.5','port':3322,'username':'admin','password':'P@ssword', 'rdirname':'/U12/Andy/0802/', # remote dir path 'ldirname':'./h0802/', # local dir path } # upload file to this server serTo = {'ip':'10.13.20.5','port':3322,'username':'admin','password':'P@ssword', 'rdirname':'/U12/Andy/0803/', # remote dir path 'ldirname':'./h0802/', # local dir path } #------------------------------------------------------------------ class FTPSync: def __init__(self,host): '''connect to server''' self.server = host self.ssh = SSHClient() self.ssh.set_missing_host_key_policy(AutoAddPolicy()) def login(self): self.ssh.connect(self.server['ip'],self.server['port'],self.server['username'],self.server['password'],allow_agent=False) self.sftp = self.ssh.open_sftp() def get_file(self,ftp_path,local_path='.'): self.sftp.get(ftp_path,local_path) def put_file(self,local_path,ftp_path='.'): self.sftp.put(local_path,ftp_path) def get_dir(self,ftp_path,local_path='.',begin=True): ftp_path = ftp_path.rstrip('/') if self._is_ftp_dir(ftp_path): if begin: if os.path.isdir(local_path): self._rm_loc_dir(local_path) else: os.makedirs(local_path) local_path = os.path.join(local_path,os.path.basename(ftp_path)) if not os.path.isdir(local_path): os.makedirs(local_path) self._cd_ftp_dir(ftp_path) ftp_files = self._get_ftp_filelst() for afile in ftp_files: local_file = os.path.join(local_path,afile) if self._is_ftp_dir(afile): self.get_dir(afile,local_file,False) else: self.get_file(afile,local_file) self._cd_ftp_dir('..') return else: print 'ERROR:The dir:%s is not exist' %ftp_path return def put_dir(self,local_path,ftp_path,begin=True): ftp_path = ftp_path.rstrip('/') if os.path.isdir(local_path): if begin: if self._is_ftp_dir(ftp_path): self._rm_ftp_dir(ftp_path) else: self._mk_ftp_dir(ftp_path) ftp_path = os.path.join(ftp_path,os.path.basename(local_path)) if not self._is_ftp_dir(ftp_path): self._mk_ftp_dir(ftp_path) os.chdir(local_path) local_files = os.listdir('.') for afile in local_files: if os.path.isdir(afile): new_ftp_path = os.path.join(ftp_path,afile) self.put_dir(afile,new_ftp_path,False) else: self.put_file(afile,os.path.join(ftp_path,afile)) os.chdir('..') return else: print 'ERROR:The dir:%s is not exist' %local_path return def close(self): self.sftp.close() def _is_ftp_dir(self,path): try: attr = self.sftp.lstat(path) attr = str(attr) if attr.startswith('d'): return True else: return False except: return False def _rm_ftp_dir(self,ftp_path): ftp_path = ftp_path.rstrip('/') if self._is_ftp_dir(ftp_path): self._cd_ftp_dir(ftp_path) ftp_files = self._get_ftp_filelst() for afile in ftp_files: if self._is_ftp_dir(afile): self._rm_ftp_dir(afile) else: #print 'sftp.remove:',afile self.sftp.remove(afile) self._cd_ftp_dir('..') #print 'sftp.rmdir:',ftp_path self.sftp.rmdir(ftp_path) return def _rm_loc_dir(self,Dir): if os.path.isdir( Dir ): paths = os.listdir( Dir ) for path in paths: filePath = os.path.join( Dir, path ) if os.path.isfile( filePath ): os.remove( filePath ) elif os.path.isdir( filePath ): self._rm_loc_dir(filePath) def _cd_ftp_dir(self,path): self.sftp.chdir(path) def _get_ftp_filelst(self): return self.sftp.listdir() def _mk_ftp_dir(self,path): self.sftp.mkdir(path) if __name__ == '__main__': ser1 = FTPSync(serFr) ser1.login() ser1.get_dir(serFr['rdirname'],serFr['ldirname']) ser1.close() ser2 = FTPSync(serTo) ser2.login() ser2.put_dir(serTo['ldirname'],serTo['rdirname']) ser2.close()

shell里调用sftp加了参数-o就报错

做了个shell sftp XXX@XXX没报错 但是为了防止连接不上加了个-o超时属性就报错 sftp -o ConnectTime=3 XXX@XXX 是不是sshd的配置文件配的不对,ssh属性传不进去啊

java SFTP 关闭通道和回话的问题

代码如下 public static void disconnect(ChannelSftp... channelSftp) { for (ChannelSftp cs : channelSftp) { Session session = cs.getSession(); cs.disconnect(); if(session != null){ session.disconnect(); } } } public static void main(String[] args) { String ip = "192.168.20.202"; int port = 22; String username = "sftp"; String password = "MYOpYcccc4zRgqH5ecN"; ChannelSftp connect = SFtpUtil.connect(ip, port, username, password); SFtpUtil.upload("/data/down/AppDownload/App/Android/", "C:/apk/error.txt", connect); SFtpUtil.disconnect(connect); try { Thread.sleep(1000 * 120); } catch (InterruptedException e) { e.printStackTrace(); } } 文件可以上传的服务器,问题是上传完毕程序在睡眠期间本地文件删不掉,提示错误是java虚拟机在占用本地文件资源,求大神看看怎么在程序休眠期间可以删除本地文件,帐号只有10金币了,求大神看看

c# 使用sftp 上传下载文件问题

我在我的程序里边 调用了Tamir.SharpSsh.dll , DiffieHellman.dll,Org.Mentalis.Security.dll都进进行了创建强名称, 但是运行的时候还是会抛出以下错误,请问有大神知道怎么解决么,万分感谢! 我另外写了一个demo是可以运行的,但是将这些加载到另一个程序之后,就抛这个异常了. Tamir.SharpSsh.jsch.JSchException: Session.connect: System.IO.FileLoadException: Could not load file or assembly 'DiffieHellman, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. A strongly-named assembly is required. (Exception from HRESULT: 0x80131044) File name: 'DiffieHellman, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' at Tamir.SharpSsh.jsch.jce.DH.getE() at Tamir.SharpSsh.jsch.DHG1.init(Session session, Byte[] V_S, Byte[] V_C, Byte[] I_S, Byte[] I_C) at Tamir.SharpSsh.jsch.Session.receive_kexinit(Buffer buf) at Tamir.SharpSsh.jsch.Session.connect(Int32 connectTimeout)

关于JSch记录回显的问题

1,这段JSch链接Linux的代码可以实现交互,即当输入su的时候,可以继续读下一行命令,将密码输入进去 2,想请问各位,如何记录linux的回显,谢谢各位了,想了很多办法没有找到方法 public class MyShell { static String user = "xxxx"; static String host = "xxxx"; static int port = 22; static String password = "xxxx"; static Session session; static Channel shellChannel; static PrintStream shellStream; static InputStream in; public static void main(String[] args) throws JSchException, IOException, InterruptedException { JSch jsch = new JSch(); jsch.removeAllIdentity(); session = jsch.getSession(user, host, port); session.setPassword(password); session.setConfig("StrictHostKeyChecking", "no"); session.setConfig("PubkeyAuthentication", "no"); System.out.println("Establishing Connection..."); session.setConfig("PreferredAuthentications", "publickey,keyboard-interactive,password"); session.connect(); System.out.println("Connection established."); System.out.println("Crating SFTP Channel."); shellChannel = session.openChannel("shell"); shellChannel.connect(); ((ChannelShell) shellChannel).setPty(true); shellChannel.setInputStream(System.in); in = shellChannel.getInputStream(); shellChannel.setOutputStream(System.out); shellStream = new PrintStream(shellChannel.getOutputStream()); Thread.sleep(1000); sendCommand("su - root"); Thread.sleep(1000); sendCommand("QAZ2wsx@123!"); Thread.sleep(1000); sendCommand("whoami"); Thread.sleep(1000); sendCommand("exit"); session.disconnect(); } public static void sendCommand(String c) throws IOException { shellStream.print(c + "\n"); shellStream.flush(); } } 想知道如何得到linux的回显

java从sftp上下载到本地磁盘的zip文件读取不了,请大家帮忙解答下,谢谢!

从sftp上下载到本地的zip文件是没问题的,用压缩工具打开能查看里面的文件,为什么就是读取不了呢? java从sftp下载zip文件到本地磁盘代码: import java.io.InputStream; import java.util.Date; import com.ibm.gbs.ai.portal.framework.util.DateUtils; import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; public class FtpZipOption { public static String ftpServer = "***";//有关机密不便给大家看,理解万岁! public static int ftpPort = 22; public static String ftpUserName = "***"; public static String ftpPassword = "***"; @SuppressWarnings({ "rawtypes", "resource" }) public static void main(String[] args) throws Exception { Session session = null; Channel channel = null; JSch jsch = new JSch(); if(ftpPort <=0){ //连接服务器,采用默认端口 session = jsch.getSession(ftpUserName, ftpServer); }else{ //采用指定的端口连接服务器 session = jsch.getSession(ftpUserName, ftpServer ,ftpPort); } //如果服务器连接不上,则抛出异常 if (session == null) { throw new Exception("session is null"); } //设置登陆主机的密码 session.setPassword(ftpPassword);//设置密码 java.util.Properties config = new java.util.Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config); //设置登陆超时时间 session.connect(); try { //创建sftp通信通道 channel = (Channel) session.openChannel("sftp"); channel.connect(); ChannelSftp sftp = (ChannelSftp) channel; //进入服务器指定的文件夹 sftp.cd("download/"+DateUtils.convert(DateUtils.convert(DateUtils.addDay(new Date(), -1)), "yyyyMMdd")); String[] tt = sftp.ls("*.zip").get(0).toString().split(" "); InputStream input = sftp.get(tt[tt.length-1]); sftp.get("D:\\hh", tt[tt.length-1]); // ftp.openConnect(); /*if (ftp.createFile("/alipay/download/"+DateUtils.convert(DateUtils.convert(DateUtils.addDay(new Date(), -1)), "yyyyMMdd"))) { ftp.uploadFile("/alipay/download/"+DateUtils.convert(DateUtils.convert(DateUtils.addDay(new Date(), -1)), "yyyyMMdd"), "alipay_record_"+DateUtils.convert(DateUtils.convert(DateUtils.addDay(new Date(), -1)), "yyyyMMdd")+".zip",input); }*/ input.close(); } catch (Exception e) { System.out.println(e.getMessage()); }finally{ session.disconnect(); channel.disconnect(); } } } java读取从sftp上下载到本地的zip文件代码: import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import java.util.zip.ZipInputStream; import org.apache.commons.collections.CollectionUtils; import com.ibm.gbs.ai.portal.framework.util.StringUtils; public class testUtils { @SuppressWarnings({ "resource", "unused" }) public static void main(String[] args) throws IOException { // logger.info("进入下载。。。。"); String localFtp ="alipay_record_20150324.txt"; // FtpUtils ftp = new FtpUtils(Const.FTP_SERVER, Const.FTP_PROT, Const.FTP_USER_NAME, Const.FTP_PASSWORD); // ftp.openConnect(); String productName = "商品名称"; String likeFileName = "财务明细.csv"; ZipFile zipFile = null; byte[] buffer = new byte[1024]; // InputStream in = ftp.returnFileStream(new String(remoteFile, "gb2312")); InputStream in = new BufferedInputStream(new FileInputStream("D:\\hh\\2088001502510167_20150325.zip")); // CheckedInputStream csumi = new CheckedInputStream(in, new Adler32()); ZipInputStream zin = new ZipInputStream(in); if (in != null) { try { ZipEntry zz = null; List<String> list = new ArrayList<String>(); if (zin == null) { return; }else { while ((zz = zin.getNextEntry()) != null) {//在这把报错了,错误是:“java.lang.IllegalArgumentException”,zin.getNextEntry()因为ZipInputStream对象zin中根本这个属性 if (zz.isDirectory()) { return; }else { String name = zz.getName(); String [] names = name.split("_"); if (StringUtils.equals(names[names.length-1].trim(), likeFileName)) { @SuppressWarnings("null") final BufferedReader br = new BufferedReader(new InputStreamReader(zipFile.getInputStream(zz),"gb2312")); String line; while ((line = br.readLine()) != null) { final StringTokenizer st = new StringTokenizer(line, ""); String [] temps = line.split(","); if (temps.length < 9 || StringUtils.equals(productName, temps[8].trim())) { continue; } final String rowInfo = st.nextToken(); list.add(rowInfo+"\n"); } } } } if (CollectionUtils.isNotEmpty(list)) { for (int i = 0; i < list.size(); i++) { buffer = list.get(i).getBytes(); } ByteArrayInputStream input = new ByteArrayInputStream(buffer); // String filePath = "/alipay/download/"+DateUtils.convert(DateUtils.convert(DateUtils.addDay(new Date(), -2)), "yyyyMMdd"); // ftp.uploadFile(filePath, localFtp, input); input.close(); } } } catch (Exception e) { e.printStackTrace(); } finally { try { if (in != null) { in.close(); } if (zin != null) { zin.close(); } } catch (Exception e2) { // logger.error("关闭流异常:"+e2.getMessage()); e2.printStackTrace(); } } } // ftp.close(); // logger.info("下载结束!"); } }

JSCH连接SFTP服务报错: Auth fail

手动测试SFTP连接OK,程序JSCH连接SFTP就报错com.jcraft.jsch.JSchException: Auth fail。已经确认了N遍,用户名/密码/ip配置绝对没错。求各位大神积极发言帮忙解决!!不胜感激!!![图片说明](https://img-ask.csdn.net/upload/201601/14/1452758062_992673.png)

sftp用证书文件登录报algorithm negotiation fail

请教各位大神,我要使用sftp传输文件,可以再登录这块出现了问题几天都没找到解决方法 开发语言C# 用的是网上开源的Tamir.SharpSSH.dll 对方提供了host name和user name 用工具PuTTY在本机生成了2个文件 public key和private key public key已传给对方加过白名单了 用工具WinSCP 输入host name 和user name再传入private key file可以登录连上对方 但是用网上开源的Tamir.SharpSSH.dll和代码连击不上 这是登录的代码 private Session m_session; private Channel m_channel; private ChannelSftp m_sftp; //host:sftp地址 user:用户名 pwd:密码 public Helper(string host, string user, string pwd, string privateKey) { string[] arr = host.Split(':'); string ip = arr[0]; int port = 22; if (arr.Length > 1) port = Int32.Parse(arr[1]); JSch jsch = new JSch(); string passphrase = ""; if (privateKey != null && !"".Equals(privateKey)) { if (passphrase != null && !"".Equals(passphrase)) { //设置带口令的密钥 jsch.addIdentity(privateKey, passphrase); } else { //设置不带口令的密钥 jsch.addIdentity(privateKey); } } m_session = jsch.getSession(user, ip, port); MyUserInfo ui = new MyUserInfo(); ui.setPassword(pwd); m_session.setUserInfo(ui); } //登录验证信息 public class MyUserInfo : UserInfo { String passwd; public String getPassword() { return passwd; } public void setPassword(String passwd) { this.passwd = passwd; } public String getPassphrase() { return null; } public bool promptPassphrase(String message) { return true; } public bool promptPassword(String message) { return true; } public bool promptYesNo(String message) { return true; } public void showMessage(String message) { } } //SFTP连接状态 public bool Connected { get { return m_session.isConnected(); } } //连接SFTP public bool Connect() { try { if (!Connected) { m_session.connect(); m_channel = m_session.openChannel("sftp"); m_channel.connect(); m_sftp = (ChannelSftp)m_channel; } return true; } catch { return false; } } private key是个.ppk的文件 登录时会报异常 ![图片说明](https://img-ask.csdn.net/upload/201508/18/1439867038_646861.png) 用PuTTY工具 把.ppa文件转成OpenSSH key 再去执行登录报异常 ![图片说明](https://img-ask.csdn.net/upload/201508/18/1439867114_780724.png) 实在没方向了 不知道怎么去做登录了 求做过C#用文件 在程序中登录大神们指点下

com.jcraft.jsch 实现SSH的BindAddress功能

今天使用jsch实现ssh功能遇到一个问题,请各位大神帮忙看看,先在这里谢过了。问题如下: 之前能通过命令sftp username@ip连接对端服务器,java代码为 ``` com.jcraft.jsch.Session session = null; JSch jsch = new JSch(); session = jsch.getSession(userName, ip, Integer.parseInt(port)); session.setConfig("StrictHostKeyChecking", "no"); session.setPassword(password); session.connect(); channel = session.openChannel("sftp"); channel.connect(); ``` 后面由于客户安全考虑使用了浮动ip,先前的命令无法连通,需用命令sftp -oBindAddress=ip_浮动 syncoss@ip。 发现使用session.setConfig("BindAddress", ip_浮动);//无效 继续查资料,试着使用代理 ``` ProxySOCKS4 proxysocket = new ProxySOCKS4(ip_浮动,22); session.setProxy(proxysocket); ``` 依旧不行。。。。 求各位大神。指教

SFTP 上传文件问题(目标文件大小比源文件小,)

使用java代码上传我文件,用的是JSch 的包, 实际操作代码是: ``` channelSftp.put(filePath,dstFile,new MyProgressMonitor(),ChannelSftp.OVERWRITE); channelSftp.quit(); if (channelSftp != null && channelSftp.isConnected()){ channelSftp.disconnect(); } if (session != null && session.isConnected()){ session.disconnect(); } ``` filePath是源文件,dstFile是目标文件, 源文件大小是 600k,上传完成后目标文件的大小是580k, 目标主机也没有限制上传文件的大小 ,代买实在是找不到问题在哪,还望大牛们指点一二!!!

程序员的兼职技能课

获取讲师答疑方式: 在付费视频第一节(触摸命令_ALL)片头有二维码及加群流程介绍 限时福利 原价99元,今日仅需39元!购课添加小助手(微信号:csdn590)按提示还可领取价值800元的编程大礼包! 讲师介绍: 苏奕嘉&nbsp;前阿里UC项目工程师 脚本开发平台官方认证满级(六级)开发者。 我将如何教会你通过【定制脚本】赚到你人生的第一桶金? 零基础程序定制脚本开发课程,是完全针对零脚本开发经验的小白而设计,课程内容共分为3大阶段: ①前期将带你掌握Q开发语言和界面交互开发能力; ②中期通过实战来制作有具体需求的定制脚本; ③后期将解锁脚本的更高阶玩法,打通任督二脉; ④应用定制脚本合法赚取额外收入的完整经验分享,带你通过程序定制脚本开发这项副业,赚取到你的第一桶金!

Windows版YOLOv4目标检测实战:训练自己的数据集

课程演示环境:Windows10; cuda 10.2; cudnn7.6.5; Python3.7; VisualStudio2019; OpenCV3.4 需要学习ubuntu系统上YOLOv4的同学请前往:《YOLOv4目标检测实战:训练自己的数据集》 课程链接:https://edu.csdn.net/course/detail/28745 YOLOv4来了!速度和精度双提升! 与 YOLOv3 相比,新版本的 AP (精度)和 FPS (每秒帧率)分别提高了 10% 和 12%。 YOLO系列是基于深度学习的端到端实时目标检测方法。本课程将手把手地教大家使用labelImg标注和使用YOLOv4训练自己的数据集。课程实战分为两个项目:单目标检测(足球目标检测)和多目标检测(足球和梅西同时检测)。 本课程的YOLOv4使用AlexyAB/darknet,在Windows系统上做项目演示。包括:安装软件环境、安装YOLOv4、标注自己的数据集、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算)和先验框聚类分析。还将介绍改善YOLOv4目标检测性能的技巧。 除本课程《Windows版YOLOv4目标检测实战:训练自己的数据集》外,本人将推出有关YOLOv4目标检测的系列课程。请持续关注该系列的其它视频课程,包括: 《Windows版YOLOv4目标检测实战:人脸口罩佩戴检测》 《Windows版YOLOv4目标检测实战:中国交通标志识别》 《Windows版YOLOv4目标检测:原理与源码解析》

lena全身原图(非256*256版本,而是全身原图)

lena全身原图(非256*256版本,而是全身原图) lena原图很有意思,我们通常所用的256*256图片是在lena原图上截取了头部部分的256*256正方形得到的. 原图是花花公子杂志上的一个

快速入门Android开发 视频 教程 android studio

这是一门快速入门Android开发课程,顾名思义是让大家能快速入门Android开发。 学完能让你学会如下知识点: Android的发展历程 搭建Java开发环境 搭建Android开发环境 Android Studio基础使用方法 Android Studio创建项目 项目运行到模拟器 项目运行到真实手机 Android中常用控件 排查开发中的错误 Android中请求网络 常用Android开发命令 快速入门Gradle构建系统 项目实战:看美图 常用Android Studio使用技巧 项目签名打包 如何上架市场

Java调用微信支付

Java 使用微信支付 一. 准备工作 1.

汽车租赁管理系统需求分析规格说明书

汽车租赁管理系统需求分析规格说明书,这只是一个模板,如果有不会的可以借鉴一下,还是蛮详细的。。。。

C/C++跨平台研发从基础到高阶实战系列套餐

一 专题从基础的C语言核心到c++ 和stl完成基础强化; 二 再到数据结构,设计模式完成专业计算机技能强化; 三 通过跨平台网络编程,linux编程,qt界面编程,mfc编程,windows编程,c++与lua联合编程来完成应用强化 四 最后通过基于ffmpeg的音视频播放器,直播推流,屏幕录像,

程序员的算法通关课:知己知彼(第一季)

【超实用课程内容】 程序员对于算法一直又爱又恨!特别是在求职面试时,算法类问题绝对是不可逃避的提问点!本门课程作为算法面试系列的第一季,会从“知己知彼”的角度,聊聊关于算法面试的那些事~ 【哪些人适合学习这门课程?】 求职中的开发者,对于面试算法阶段缺少经验 想了解实际工作中算法相关知识 在职程序员,算法基础薄弱,急需充电 【超人气讲师】 孙秀洋&nbsp;| 服务器端工程师 硕士毕业于哈工大计算机科学与技术专业,ACM亚洲区赛铜奖获得者,先后在腾讯和百度从事一线技术研发,对算法和后端技术有深刻见解。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27272 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程无限观看时长,但是大家可以抓紧时间学习后一起讨论哦~

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

Python入门视频精讲

Python入门视频培训课程以通俗易懂的方式讲解Python核心技术,Python基础,Python入门。适合初学者的教程,让你少走弯路! 课程内容包括:1.Python简介和安装 、2.第一个Python程序、PyCharm的使用 、3.Python基础、4.函数、5.高级特性、6.面向对象、7.模块、8.异常处理和IO操作、9.访问数据库MySQL。教学全程采用笔记+代码案例的形式讲解,通俗易懂!!!

我以为我对Mysql事务很熟,直到我遇到了阿里面试官

太惨了,面试又被吊打

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

Java62数据提取代码

利用苹果手机微信下面的wx.data文件提取出62数据,通过62可以实现不同设备直接登陆,可以通过文件流的方式用脚本上传到服务器进行解析

Python代码实现飞机大战

文章目录经典飞机大战一.游戏设定二.我方飞机三.敌方飞机四.发射子弹五.发放补给包六.主模块 经典飞机大战 源代码以及素材资料(图片,音频)可从下面的github中下载: 飞机大战源代码以及素材资料github项目地址链接 ————————————————————————————————————————————————————————— 不知道大家有没有打过飞机,喜不喜欢打飞机。当我第一次接触这个东西的时候,我的内心是被震撼到的。第一次接触打飞机的时候作者本人是身心愉悦的,因为周边的朋友都在打飞机, 每

2018年全国大学生计算机技能应用大赛决赛 大题

2018年全国大学生计算机技能应用大赛决赛大题,程序填空和程序设计(侵删)

Lena图像处理测试专业用图,高清完整全身原图

Lena图像处理测试专业用图,高清完整全身原图,该图片很好的包含了平坦区域、阴影和纹理等细节,这些都有益于测试各种不同的图像处理算法。它是一幅很好的测试照片!其次,由于这是一个非常有魅力女人的照片。

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

verilog实现地铁系统售票

使用 verilog 实现地铁售票

Python+OpenCV计算机视觉

Python+OpenCV计算机视觉系统全面的介绍。

Python可以这样学(第四季:数据分析与科学计算可视化)

董付国老师系列教材《Python程序设计(第2版)》(ISBN:9787302436515)、《Python可以这样学》(ISBN:9787302456469)配套视频,在教材基础上又增加了大量内容,通过实例讲解numpy、scipy、pandas、statistics、matplotlib等标准库和扩展库用法。

150讲轻松搞定Python网络爬虫

【为什么学爬虫?】 &nbsp; &nbsp; &nbsp; &nbsp;1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到! &nbsp; &nbsp; &nbsp; &nbsp;2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 &nbsp; 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑

获取Linux下Ftp目录树并逐步绑定到treeview

在linux下抓取目录树,双击后获取该节点子节点(逐步生成)。另外有两个类,一个是windows下的(一次性获取目录树),一个是linux下的(足部获取目录树)

YOLOv3目标检测实战系列课程

《YOLOv3目标检测实战系列课程》旨在帮助大家掌握YOLOv3目标检测的训练、原理、源码与网络模型改进方法。 本课程的YOLOv3使用原作darknet(c语言编写),在Ubuntu系统上做项目演示。 本系列课程包括三门课: (1)《YOLOv3目标检测实战:训练自己的数据集》 包括:安装darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 (2)《YOLOv3目标检测:原理与源码解析》讲解YOLOv1、YOLOv2、YOLOv3的原理、程序流程并解析各层的源码。 (3)《YOLOv3目标检测:网络模型改进方法》讲解YOLOv3的改进方法,包括改进1:不显示指定类别目标的方法 (增加功能) ;改进2:合并BN层到卷积层 (加快推理速度) ; 改进3:使用GIoU指标和损失函数 (提高检测精度) ;改进4:tiny YOLOv3 (简化网络模型)并介绍 AlexeyAB/darknet项目。

手把手实现Java图书管理系统(附源码)

【超实用课程内容】 本课程演示的是一套基于Java的SSM框架实现的图书管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。详细介绍了图书管理系统的实现,包括:环境搭建、系统业务、技术实现、项目运行、功能演示、系统扩展等,以通俗易懂的方式,手把手的带你从零开始运行本套图书管理系统,该项目附带全部源码可作为毕设使用。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27513 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化

微信小程序开发实战之番茄时钟开发

微信小程序番茄时钟视频教程,本课程将带着各位学员开发一个小程序初级实战类项目,针对只看过官方文档而又无从下手的开发者来说,可以作为一个较好的练手项目,对于有小程序开发经验的开发者而言,可以更好加深对小程序各类组件和API 的理解,为更深层次高难度的项目做铺垫。

Java 最常见的 200+ 面试题:面试必备

这份面试清单是从我 2015 年做了 TeamLeader 之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘在 Java 技术栈中,还有那些知识点是我不知道的,我想找到这些技术盲点,然后修复它,以此来提高自己的技术水平。虽然我是从 2009 年就开始参加编程工作了,但我依旧觉得自己现在要学的东西很多,并且学习这些知识,让我很有成就感和满足感,那所以何乐而不为呢? 说回面试的事,这份面试...

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

微信小程序 实例汇总 完整项目源代码

微信小程序 实例汇总 完整项目源代码

基于西门子S7—1200的单部六层电梯设计程序,1部6层电梯

基于西门子S7—1200的单部六层电梯设计程序,1部6层电梯。 本系统控制六层电梯, 采用集选控制方式。 为了完成设定的控制任务, 主要根据电梯输入/输出点数确定PLC 的机型。 根据电梯控制的要求,

相关热词 c#对文件改写权限 c#中tostring c#支付宝回掉 c#转换成数字 c#判断除法是否有模 c# 横向chart c#控件选择多个 c#报表如何锁定表头 c#分级显示数据 c# 不区分大小写替换
立即提问
相关内容推荐