[BUG?] sftp is echoing back prompt and commands in batch mode

Vincenzo Romano vincenzo.romano at notorand.it
Sun Nov 4 21:04:20 AEDT 2018


Il giorno dom 4 nov 2018 alle ore 01:45 Ben Lindstrom
<mouring at offwriting.org> ha scritto:
>
> I don't see it as a bug.

Yes, this is why I put a question mark in the subject.

> As if I'm writing a batch script I want to see the echo of the command and the output so if there is a failure I know where the failure is.

I see: you have a single batch file with no conditionals.
I have multiple dynamic 1-command batches with conditionals.
That makes the big difference.

> I could see adding a mode not to echo back the command or prompt.

Me too.

>  But it isn't a bug to me.

This makes sense.

> Ben
>
>
>
> Vincenzo Romano wrote:
>
> Thanks, Iain.
> I am willing to hear from other users whether anyone else sees this as a
> bug before filing it.
>
>
> --
> Vincenzo Romano
>
> Il giorno ven 2 nov 2018, 20:03 Iain Morgan <imorgan at nas.nasa.gov> ha
> scritto:
>
> If you truly intend this as a bug report, you should file it at
> bugzilla.mindrot.org.
>
> On Fri, Nov 02, 2018 at 12:25:22 +0100, Vincenzo Romano wrote:
>
> Short description: All comands sent to server in batch mode are being
> echoed back along with prompt.
> Software Version: "OpenSSH_7.9p1, OpenSSL 1.1.1  11 Sep 2018" (as
> printed by ssh -V)
> Server and client systems: ArchLinux x86_64 fully updated as of
>
> 2018-11-02.
>
> ## How to reproduce
>
> Provided that you have proper SSH key authentication in place, from
> command line run:
> echo "dir /var" | sftp -b - 0
>
> ## Expected output
>
> /var/backups    /var/cache      /var/lib        /var/local      /var/lock
> /var/log        /var/mail       /var/opt        /var/puppet     /var/run
> /var/spool      /var/tmp        /var/www
>
> ## Actual output
>
> sftp> dir /var
> /var/backups    /var/cache      /var/lib        /var/local      /var/lock
> /var/log        /var/mail       /var/opt        /var/puppet     /var/run
> /var/spool      /var/tmp        /var/www
>
> Please note the first line is the server prompt followed by the command
>
> echo.
>
> ## Workaround
>
> Expunge the first line from the client output
> echo "dir /var" | sftp -b - 0 | tail -n +2
>
> ## Notes
> Batch mode is meant for script automation, not human operations, so
> echoing the prompt and the commands doesn't make any sense and creates
> problems while processing the output.
> A possible solution that's also backward compatible with all scripts
> using batch mode is to allow for a special prefix character to
> commands to avoid any echoing, just like the "-" is used to avoid a
> single failing command to terminate the client. Something like "@" or
> "#" would be ok IMHO.
>
> --
> Vincenzo Romano - NotOrAnd.IT
> Information Technologies
> --
> NON QVIETIS MARIBVS NAVTA PERITVS
> _______________________________________________
> openssh-unix-dev mailing list
> openssh-unix-dev at mindrot.org
> https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev
>
> --
> Iain Morgan
>
> Il giorno ven 2 nov 2018, 20:03 Iain Morgan <imorgan at nas.nasa.gov> ha
> scritto:
>
> If you truly intend this as a bug report, you should file it at
> bugzilla.mindrot.org.
>
> On Fri, Nov 02, 2018 at 12:25:22 +0100, Vincenzo Romano wrote:
>
> Short description: All comands sent to server in batch mode are being
> echoed back along with prompt.
> Software Version: "OpenSSH_7.9p1, OpenSSL 1.1.1  11 Sep 2018" (as
> printed by ssh -V)
> Server and client systems: ArchLinux x86_64 fully updated as of
>
> 2018-11-02.
>
> ## How to reproduce
>
> Provided that you have proper SSH key authentication in place, from
> command line run:
> echo "dir /var" | sftp -b - 0
>
> ## Expected output
>
> /var/backups    /var/cache      /var/lib        /var/local      /var/lock
> /var/log        /var/mail       /var/opt        /var/puppet     /var/run
> /var/spool      /var/tmp        /var/www
>
> ## Actual output
>
> sftp> dir /var
> /var/backups    /var/cache      /var/lib        /var/local      /var/lock
> /var/log        /var/mail       /var/opt        /var/puppet     /var/run
> /var/spool      /var/tmp        /var/www
>
> Please note the first line is the server prompt followed by the command
>
> echo.
>
> ## Workaround
>
> Expunge the first line from the client output
> echo "dir /var" | sftp -b - 0 | tail -n +2
>
> ## Notes
> Batch mode is meant for script automation, not human operations, so
> echoing the prompt and the commands doesn't make any sense and creates
> problems while processing the output.
> A possible solution that's also backward compatible with all scripts
> using batch mode is to allow for a special prefix character to
> commands to avoid any echoing, just like the "-" is used to avoid a
> single failing command to terminate the client. Something like "@" or
> "#" would be ok IMHO.
>
> --
> Vincenzo Romano - NotOrAnd.IT
> Information Technologies
> --
> NON QVIETIS MARIBVS NAVTA PERITVS
> _______________________________________________
> openssh-unix-dev mailing list
> openssh-unix-dev at mindrot.org
> https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev
>
> --
> Iain Morgan
>
> _______________________________________________
> openssh-unix-dev mailing list
> openssh-unix-dev at mindrot.org
> https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev
>
>


-- 
Vincenzo Romano - NotOrAnd.IT
Information Technologies
--
NON QVIETIS MARIBVS NAVTA PERITVS


More information about the openssh-unix-dev mailing list