[Bug 2230] New: Undocumented sftp put -r quirk: Couldn't canonicalize: No such file or directory

bugzilla-daemon at mindrot.org bugzilla-daemon at mindrot.org
Thu Apr 17 16:55:34 EST 2014


https://bugzilla.mindrot.org/show_bug.cgi?id=2230

            Bug ID: 2230
           Summary: Undocumented sftp put -r quirk: Couldn't canonicalize:
                    No such file or directory
           Product: Portable OpenSSH
           Version: 6.5p1
          Hardware: amd64
                OS: Linux
            Status: NEW
          Severity: minor
          Priority: P5
         Component: sftp
          Assignee: unassigned-bugs at mindrot.org
          Reporter: parke.nexus at gmail.com

As of OpenSSH 6.5 on Ubuntu 14.04 (package version 1:6.5p1-6), there
appears to be an undocumented requirement for the sftp "put -r"
command.  In order to "put -r foo", a remote directory named "foo"
must already exist.

If a remote directory named foo does not exist, the following
(confusing) error message is displayed:

sftp> put -r foo
Uploading foo/ to /home/user/test/foo
Couldn't canonicalize: No such file or directory
Unable to canonicalize path "/home/parke/test/foo"

I recommend that this requirement be documented in the sftp manpage.
I can draft language, if needed.

The error message could also be more helpful.  For example: "Required
remote directory "foo" does not exist."

There is related discussion on stack exchange:
http://unix.stackexchange.com/questions/7004/uploading-directories-with-sftp
http://stackoverflow.com/questions/17477226/what-cause-the-error-couldnt-canonicalise-no-such-file-or-directory-in-sftp

----

Damien Miller on the openssh-unix-dev at mindrot.org mailing list has an
alternative suggestion for fixing this problem:

IMO the directory should be created if it doesn't exist, just like
"cp -r" does.

-- 
You are receiving this mail because:
You are watching the assignee of the bug.


More information about the openssh-bugs mailing list