[ https://issues.apache.org/jira/browse/SSHD-927?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16872994#comment-16872994 ]
Goldstein Lyor commented on SSHD-927: ------------------------------------- {quote}Why is the affecting only if the file already exists on remote server ?{quote} That is something to ask the developers of the client - however, if I had to venture a guess I would say that the client checks if the file already exists, and if so tries to avoid doing a large copy (or any copy at all) by comparing the hashes of the 2 files. There other such "standard" schemes - e.g. {{md5-hash}} as specified by [DRAFT 09 - section 9.1.2|https://tools.ietf.org/wg/secsh/draft-ietf-secsh-filexfer/draft-ietf-secsh-filexfer-09.txt]. {quote}Any plans of supporting this feature in SSHD?{quote} I don't think so - this is a *proprietary* extension (and there are many more out there). The standard seem very clear on this issue - one should ask the server about its supported extensions before attempting to use any of them, or alternatively be prepared to handle {{SSH_FX_OP_UNSUPPORTED}}. This client seems to assume implicitly that the server is of its own "origin" and supports this extension, so no need to ask... :(. Specifically for the SSHD SFTP subsystem implementation we could add a more convenient extensions registration mechanism so that users can easily add their own (they can still do so, but it is a bit more cumbersome). However, the effort must be justified by enough users asking for this feature since we have extremely limited R&D resources at our disposal. This is an open invitation though to propose such a mechanism and implement it for anyone who feels it is critical - we always welcome contributions. > SFTP put fails terminating the connection if the remote file exists > ------------------------------------------------------------------- > > Key: SSHD-927 > URL: https://issues.apache.org/jira/browse/SSHD-927 > Project: MINA SSHD > Issue Type: Bug > Affects Versions: 2.1.0, 2.2.0 > Environment: Java: > C:\Program Files\Java\jdk1.8.0_201\bin>java -version > java version "1.8.0_201" > Java(TM) SE Runtime Environment (build 1.8.0_201-b26) > Java HotSpot(TM) 64-Bit Server VM (build 25.201-b26, mixed mode) > Apache SSHD : 2.1.0 > C:\temp>sftp2 --version > sftp2: Tectia Client 6.4.14 on x86-pc-windows > Build: 26 > Product: Tectia Client > License type: commercial > Copyright (C) SSH Communications Security Corporation. > This software is protected by international copyright laws. > All rights reserved. > This product includes software developed by the OpenSSL Project > for use in the OpenSSL Toolkit. (http://www.openssl.org/) > SFT API: 2.0.3 (build 6.4.14.26) > Reporter: Logan > Priority: Major > Attachments: sshd.log, thread-callstack.txt > > > Sftp put fails if the file already exists on the sftp server, terminating the > sfp session immediately.Below is the simple configuration to reproduce > > {code:java} > SshServer sshd = SshServer.setUpDefaultServer(); > sshd.setPort(9999); > sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider()); > sshd.setSubsystemFactories(Arrays.asList(new SftpSubsystemFactory())); > sshd.setFileSystemFactory(new VirtualFileSystemFactory(new > File("C:/temp").toPath())); > sshd.setPasswordAuthenticator(AcceptAllPasswordAuthenticator.INSTANCE); > sshd.start(); > {code} > > {noformat} > C:\temp>sftp2 test@localhost#9999 > Host key for the host "localhost#9999" not found from database. > The fingerprint of the host public key is: > Babble: "xodec-damen-ripeg-hehuh-venep-pebys-zureg-rynit-mypiz-byheh-zixax" > RFC4716: "1d:4f:c2:a4:fe:58:93:61:fe:44:69:26:f2:41:34:f7" > You can get a public key's fingerprint by running > % ssh-keygen-g3 -F publickey.pub > on the key file. > Please select how you want to proceed. > cancel) Cancel the connection. > once) Proceed with the connection but do not save the key. > save) Proceed with the connection and save the key for future use. > Please select one (cancel, once, save): once > test@localhost#9999's password: > Remote system type is POSIX. > sftp> put ndp46-kb4483451-x64_41ba9b8a814351a318e78e4e1c02adc7e9fff67a.exe > Error: Connection lost. > {noformat} > Upon Debugging I found the SftpSystem is terminated because the file channel > received close command ( see attached ) > Added event listener to see reading and read method are called but no > writing/write methods are never called. > > This can reproducible with v2.2.0 -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@mina.apache.org For additional commands, e-mail: dev-h...@mina.apache.org