I've not played with this project much, but thought I should check
this out after I saw the SFTP support in the release notes. I could
not get a working SFTP session using FileZilla. SSHD is running on
Windows using the code from trunk. I've modified the main method in
SshServer to add the SFTP subsystem. I was able to connect, login and
then when FileZilla does a PWD, it errors out as it receives an
invalid response from the server. Below is the debug log from
FileZilla:
Status: Connecting to localhost:2222...
Trace: Going to execute "C:\Program Files (x86)\FileZilla FTP
Client\fzsftp.exe"
Response: fzSftp started
Trace: CSftpControlSocket::ConnectParseResponse(fzSftp started)
Trace: CSftpControlSocket::SendNextCommand()
Trace: CSftpControlSocket::ConnectSend()
Command: keyfile "C:\Users\sai\temp\filezilla.ppk"
Trace: CSftpControlSocket::ConnectParseResponse()
Trace: CSftpControlSocket::SendNextCommand()
Trace: CSftpControlSocket::ConnectSend()
Command: open "p...@localhost" 2222
Trace: Looking up host "localhost"
Trace: Connecting to 127.0.0.1 port 2222
Trace: Server version: SSH-2.0-${POM.ARTIFACTID}-${POM.VERSION}
Trace: Using SSH protocol version 2
Trace: We claim version: SSH-2.0-PuTTY_Local:_Oct_10_2009_18:54:23
Trace: Using Diffie-Hellman with standard group "group14"
Trace: Doing Diffie-Hellman key exchange with hash SHA-1
Command: Trust new Hostkey: Once
Trace: Host key fingerprint is:
Trace: ssh-dss 1024 90:c8:10:01:dd:81:97:00:65:ec:c3:f9:d9:16:2d:b1
Trace: Initialised AES-256 CBC client->server encryption
Trace: Initialised HMAC-SHA1 client->server MAC algorithm
Trace: Initialised AES-256 CBC server->client encryption
Trace: Initialised HMAC-SHA1 server->client MAC algorithm
Trace: Successfully loaded 1 key pair from file
Trace: Offered public key from "C:\Users\sai\temp\filezilla.ppk"
Trace: Offer of public key accepted, trying to authenticate using it.
Trace: Access granted
Trace: Opened channel for session
Trace: Started a shell/command
Status: Connected to SAI
Trace: CSftpControlSocket::ConnectParseResponse()
Trace: CSftpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
Status: Retrieving directory listing...
Trace: CSftpControlSocket::SendNextCommand()
Trace: CSftpControlSocket::ChangeDirSend()
Command: pwd
Response: Current directory is: "."
Trace: ControlSocket.cpp(361): Failed to parse returned path.
caller=0p2835f80
Trace: CSftpControlSocket::ResetOperation(2)
Trace: CControlSocket::ResetOperation(2)
Trace: CSftpControlSocket::ParseSubcommandResult(2)
Trace: CSftpControlSocket::ListSubcommandResult()
Trace: CSftpControlSocket::ResetOperation(2)
Trace: CControlSocket::ResetOperation(2)
Error: Failed to retrieve directory listing
Notice that the reply to pwd (real path) is just ".". I think it
should start with "/", and that is why FileZilla is blowing up.
In short, the question is - should SSH_FXP_REALPATH return the path
(virtual or absolute) instead of just the name?
Regards,
Sai Pullabhotla
On Tue, May 4, 2010 at 8:19 AM, Guillaume Nodet <[email protected]> wrote:
> I've uploaded a RC for SSHD 0.4.0 at
> https://repository.apache.org/content/repositories/orgapachemina-003/
>
> The release notes are available at
> https://cwiki.apache.org/SSHD/sshd-040.html
>
> Please review and vote
>
> --
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
> ------------------------
> Open Source SOA
> http://fusesource.com
>