Dear Damien, On Fri, Jan 28, 2022 at 1:40 AM Damien Miller <djm@xxxxxxxxxxx> wrote: > On Thu, 27 Jan 2022, Dmitry Belyavskiy wrote: > > > Hello, > > > > When we use scp in sftp mode to copy folder to the machines with the > "old" > > version of ssh, we get the following error: > > ====== > > $ scp -vvv -r test/ touser@machine:/home/touser > > What version of OpenSSH are you using? There are a bunch of fixes in git > HEAD after 8.8. > > > If I understand correctly, the failure is caused by the lack of the " > > expand-path@xxxxxxxxxxx" > > extension to sftp protocol in old releases and (lack of) processing it on > > the server side. > > No, that extension is only invoked when a ~-prefixed path is used. > > AFAIK this was juat a behaviour difference: scp in sftp mode wasn't > creating the destination directory if it didn't exist, whereas legacy > scp would do so. It was fixed in the commit you identify below. > > > For the recent version self-compatibility it was fixed in > > > https://github.com/openssh/openssh-portable/commit/ac7c9ec894ed0825d04ef69c55babb49bab1d32e > > -d > > I've just retested with the recent master $ ./scp -S `pwd`/ssh -vvv -r -s `pwd`/openbsd-compat/ user@machine: debug2: subsystem request accepted on channel 0 ./scp: debug2: Remote version: 3 ./scp: debug2: Server supports extension "posix-rename@xxxxxxxxxxx" revision 1 ./scp: debug2: Server supports extension "statvfs@xxxxxxxxxxx" revision 2 ./scp: debug2: Server supports extension "fstatvfs@xxxxxxxxxxx" revision 2 ./scp: debug2: Server supports extension "hardlink@xxxxxxxxxxx" revision 1 ./scp: debug2: Server supports extension "fsync@xxxxxxxxxxx" revision 1 ./scp: debug2: Server supports extension "lsetstat@xxxxxxxxxxx" revision 1 ./scp: debug2: Sending SSH2_FXP_STAT "/root" ./scp: debug3: Sent message fd 6 T:17 I:1 ./scp: debug3: Received stat reply T:105 I:1 F:0x000f M:40550 ./scp: debug3: source_sftp: copying local /home/dbelyavs/work/upstream/openssh-portable/openbsd-compat to remote /root/openbsd-compat ./scp: debug2: Sending SSH2_FXP_REALPATH "/root/openbsd-compat" ./scp: debug3: Sent message fd 6 T:16 I:2 ./scp: realpath /root/openbsd-compat: No such file ./scp: upload "/root/openbsd-compat": path canonicalization failed ./scp: failed to upload directory /home/dbelyavs/work/upstream/openssh-portable/openbsd-compat to /root/openbsd-compat The failure occurs even when I specify absolute paths on the source/destination machine. The destination machine has OpenSSH_8.0p1 with patches. -- Dmitry Belyavskiy _______________________________________________ openssh-unix-dev mailing list openssh-unix-dev@xxxxxxxxxxx https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev