Undocumented sftp put -r quirk: Couldn't canonicalize: No such file or directory
Parke
parke.nexus at gmail.com
Thu Apr 17 08:57:41 EST 2014
Hi,
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
Thanks!
-Parke
More information about the openssh-unix-dev
mailing list